Redis的持久化機制?
大部分的緩存框架都會有基本功能淘汰策略,持久機制.
Redis的持久化的機制有兩種:
AOF(增量):基於數據日誌操作實現的持久化. 開啓方式:redis.conf中 appendonly改爲 yes
AOF的三種同步方式:
appendfsync always 每次有數據修改發生時都會寫入AOF文件,能夠數據不丟失,但是效率非常低.例1S1000個請求, 就會顯得低效
appendfsync everysec 每秒鐘同步一次,該策略爲AOF的缺省(默認)策略(缺點:1秒內數據可能丟失)
appendfsync no 從不同步,高效但是數據不會被持久化
建議最好使用everysec既能夠保證數據的同步,效率還可以.
RDB(默認,全量):採用定時持久化機制,但是服務器因爲某種原因宕機可能會數據丟失.
全量同步和增量同步區別:
全量:就是每天定時(避開高峯期)或者是採用一種週期的實現將數據拷貝另外一個地方.頻率不是很大,但是可能會造成數據的丟失.
增量:增量同步採用行爲操作對數據的實現同步,頻率非常高,對服務器同步的壓力非常大,能保證數據不丟失.
RDB和AOF同步的區別?
1.RDB屬於全量同步(定時同步)
優點:同步效率非常高 缺點:數據可能會丟失
2.AOF屬於增量同步 有點偏向實時
優點:同步效率稍稍有些低,最多隻會丟失1s中的數據
平衡點:既要求效率高,數據不丟失,肯定使用AOFd everysec
Redis六種淘汰策略? 設置Redis 內存大小的限制,我們可以設置maxmemory <bytes> 比如:maxmemory 300mb
noeviction:當內存使用達到閾值的時候,執行命令直接報錯
allkeys-lru:在所有的key中,優先移除最近未使用的key。(推薦)
volatile-lru:在設置了過期時間的鍵空間中,優先移除最近未使用的key。
allkeys-random:在所有的key中,隨機移除某個key。
volatile-random:在設置了過期時間的鍵空間中,隨機移除某個key。
volatile-ttl:在設置了過期時間的鍵空間中,具有更早過期時間的key優先移除。
更改持久化機制爲AOF