redis提供了兩種持久化的方式:
- RDB(redis database)在不同的時(shí)間點(diǎn)拆撼,將redis存儲(chǔ)的數(shù)據(jù)生成快照并存儲(chǔ)到磁盤等介質(zhì)上;
- AOF(append only file)是將redis執(zhí)行過的所有寫指令記錄下來,在下次redis重新啟動(dòng)時(shí),只要把這些寫指令從前到后再重復(fù)執(zhí)行一遍,就可以實(shí)現(xiàn)數(shù)據(jù)恢復(fù)了妻率。
其實(shí)RDB和AOF兩種方式也可以同時(shí)使用,在這種情況下板祝,如果redis重啟的話宫静,則會(huì)優(yōu)先采用AOF方式來進(jìn)行數(shù)據(jù)恢復(fù),這是因?yàn)锳OF方式的數(shù)據(jù)恢復(fù)完整度更高券时。
如果你沒有數(shù)據(jù)持久化的需求孤里,也完全可以關(guān)閉RDB和AOF方式,這樣的話橘洞,redis將變成一個(gè)純內(nèi)存數(shù)據(jù)庫扭粱,就像memcache一樣。
RDB
優(yōu)點(diǎn) | 缺點(diǎn) |
---|---|
redis數(shù)據(jù)庫只包含一個(gè)文件震檩,出現(xiàn)故障易恢復(fù) | 存在宕機(jī)情況數(shù)據(jù)丟失 |
性能最大化、效率高 | 數(shù)據(jù)量大時(shí)fork子進(jìn)程蜓堕,可能會(huì)導(dǎo)致服務(wù)暫停 |
AOF
優(yōu)點(diǎn) | 缺點(diǎn) |
---|---|
數(shù)據(jù)安全性高抛虏,異步完成同步,效率高 | 文件大套才,恢復(fù)速度慢 |
提供的清晰日志迂猴,方便異常情況下數(shù)據(jù)重建 | 效率低 |
redis優(yōu)勢(shì)
- 性能極高 – Redis能讀的速度是110000次/s,寫的速度是81000次/s
- 豐富的數(shù)據(jù)類型 – Redis支持二進(jìn)制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets
數(shù)據(jù)類型操作。 - 原子性背伴,同時(shí)支持幾個(gè)操作全并后的原子性執(zhí)行沸毁。
- 豐富的特性 – Redis還支持 publish/subscribe, 通知, key 過期等等特性峰髓。
redis支持類型
- String字符串,一個(gè)鍵最大能存儲(chǔ)512MB
SET key "value"
GET key
- Hash哈希,可存2^32-1對(duì)
HMSET key value1 value2 value3
HGETALL key
3.List列表息尺,可存2^32-1對(duì)
lpush list value1
lrange list 0 10
- Set集合,可存2^32-1對(duì)
sadd key value
smember key
- zset有序集合,不允許重復(fù)的成員携兵,可存2^32-1對(duì)
zadd key score value
ZRANGEBYSCORE key 0 1000
redis支持主從同步,異步進(jìn)行搂誉,主從架構(gòu)中徐紧,可以考慮關(guān)閉主服務(wù)器的數(shù)據(jù)持久化功能,只讓從服務(wù)器進(jìn)行持久化炭懊,這樣可以提高主服務(wù)器的處理性能并级。
redis 與memcached區(qū)別
redis | memcached | |
---|---|---|
支持的數(shù)據(jù)類型 | String、Hash侮腹、List嘲碧、Set和Sorted Set | key-value |
存儲(chǔ) | 并非所有數(shù)據(jù)存儲(chǔ)在內(nèi)存中,物理內(nèi)存快使用完后父阻,將一些老的數(shù)據(jù)存儲(chǔ)在次變中 | 只存儲(chǔ)于內(nèi)存中 |
持久化 | RDB和AOF | 不支持 |
集群 | 服務(wù)器端構(gòu)建分布式存儲(chǔ) | 能采用客戶端實(shí)現(xiàn)分布式存儲(chǔ) |