Professional Documents
Culture Documents
Redis
Redis
Lch s ra i ca Redis
Trc tin, chng ta s cng nhau tm hiu v s ra i ca Redis. Cu chuyn bt
u khi tc gi ca Redis, Salvatore Sanfilippo (nickname: antirez), c gng lm
nhng cng vic gn nh l khng th vi SQL Database!
Server ca antirez nhn 1 lng ln thng tin t nhiu trang web khc nhau thng
qua JavaScript tracker, lu tr n page view cho trng trang v hin th chng theo
thi gian thc cho user, km theo l lu tr 1 lng nh lch s hin th ca
trang web. Khi s lng page view tng n hng nghn page trn 1 giy, antirez
khng th tm ra cch tip cn no thc s ti u cho vic thit k database ca
mnh. Tuy nhin, anh ta nhn ra rng, vic lu tr 1 danh sch b gii hn cc bn
ghi khng phi l vn qu kh khn. T , tng lu tr thng tin trn RAM
v qun l cc page views di dng native data vi thi gian pop v push l hng
s c ra i. Antirez bt tay vo vic xy dng prototype bng C, b sung tnh
nng lu tr thng tin trn a cng v Redis ra i.
n nay cng ng ngi s dng v pht trin Redis ang dn tr ln ln
mnh, redis.io tr thnh cng thng tin cho ngi lm vic vi Redis.
Cc c im ni bt ca Redis
o
o
o
o
o
o
o
o
o
o
o
o
Redis c thm nhiu c im, chc nng khc mang li li ch khi s dng
v trin khai
Persistence
H tr nhiu Databases
Truy vn theo Key
H tr counters d liu kiu integer
Cu trc d liu cp cao
Thao tc d liu chuyn bit
T ng phn trang danh sch
Nhn rng master-slave
Cc c trng c bn ca Redis
1. Data model
Khc vi RDMS nh MySQL, hay PostgreSQL, Redis khng c table (bng).
Redis lu tr data di dng key-value. Thc t th memcache cng lm vy,
nhng kiu d liu ca memcache b hn ch, khng a dng c nh Redis, do
khng h tr c nhiu thao tc t pha ngi dng. Di y l s lc v
cc kiu d liu Redis dng lu value.
2. Master/Slave Replication
y khng phi l c trng qu ni bt, cc DBMS khc u c tnh nng ny,
tuy nhin chng ta nu ra y nhc nh rng, Redis khng km cnh cc
DBMS v tnh nng Replication.
3. Clustering
Nu s dng MySQL, bn phi tr ph c th s dng tnh nng ny, cn vi h
NoSQL DBMS, tnh nng ny hon ton free. Tuy nhin, Redis Cluster ang
phin bn alpha, v chng ta s cng ch i phin bn chnh thc ra i. Chng ta
s cp n tnh nng ny qua 1 bi vit khc, khi Redis Cluster c phin bn
chnh thc.
4. In-memory
Khng nh cc DBMS khc lu tr d liu trn a cng, Redis lu tr d liu
trn RAM, v ng nhin l thao tc c/ghi trn RAM. Vi ngi lm CNTT
bnh thng, ai cng hiu thao tc trn RAM nhanh hn nhiu so vi trn cng,
nhng chc chn chng ta s c cng cu hi: iu g xy ra vi data ca chng ta
khi server b tt?
R rng l ton b d liu trn RAM s b mt khi tt server, vy lm th no
Redis bo ton data v vn duy tr c u th x l d liu trn RAM. Chng ta
s cng tm hiu v c ch lu d liu trn cng ca Redis trong phn tip theo
ca bi vit.
Redis Persistence
Nh cp trn, mc d lm vic vi data dng key-value lu tr trn RAM,
Redis vn cn lu tr d liu trn cng. C 2 l do cho vic ny, 1 l m bo
ton vn d liu khi c s c xy ra (server b tt ngun) cng nh ti to li
dataset khi restart server, 2 l gi data n cc slave server, phc v cho tnh
nng replication. Redis cung cp 2 phng thc chnh cho vic sao lu d liu ra
cng, l RDB v AOF.
u im
RDB cho php ngi dng lu cc version khc nhau ca DB, rt thun tin
khi c s c xy ra.
Nhc im
RDB cn dng fork() to tin trnh con phc v cho thao tc disk I/O.
Trong trng hp d liu qu ln, qu trnh fork() c th tn thi gian v server s
khng th p ng c request t client trong vi milisecond hoc thm ch l 1
second ty thuc vo lng data v hiu nng CPU.
u im
Redis ghi log AOF theo kiu thm vo cui file sn c, do tin trnh seek
trn file c sn l khng cn thit. Ngoi ra, k c khi ch 1 na cu lnh c ghi
trong file log (c th do a b full), Redis vn c c ch qun l v sa cha li
(redis-check-aof).
Redis cung cp tin trnh chy nn, cho php ghi li file AOF khi dung
lng file qu ln. Trong khi server vn thc hin thao tc trn file c, 1 file hon
ton mi c to ra vi s lng ti thiu operation phc v cho vic to dataset
hin ti. V 1 khi file mi c ghi xong, Redis s chuyn sang thc hin thao tc
ghi log trn file mi.
Nhc im
AOF c th chm hn RDB ty theo cch thc thit lp khong thi gian
cho vic sao lu vo cng. Tuy nhin, nu thit lp log 1 giy 1 ln c th t
hiu nng tng ng vi RDB.
Kt
Bi vit trn y a ra nhng c trng c bn ca Redis, cng nh nhng vn
ngi dng cn lu tm khi s dng Redis. Trong cc bi vit tip theo, chng
ta s cng thc hnh Redis tm hiu r hn v cc function ca DBMS ny.
See more
Disqus seems to be taking longer than usual. Reload?
PreviousNextTrang ch
ngn ng LUA (ci ny mnh cha nghin cu). Kiu string th ging
ht memcached, tc l key-value. Cc kiu kia c c trng khc nhau.
Kiu string cho php t expire time, nu ko t th key s tn ti mi
mi. Redis ging memcached l memory-mapped, tc l tt c d liu c
y ht vo RAM (c cch y vo swap), v cho php theo mt
khong thi gian th lu mt bn dump ca tt c d liu vo 1 file.
Redis hn memcached mt im na l cho php replication. Nhng
km memcached mt im l hay b dng rt nhiu RAM. D liu file
dump tm khong 1GB, nhng map vo RAM ln tm 2GB