在redis中,允許使用者設定最大使用記憶體大小maxmemory(需要配合maxmemory-policy使用),設定為0表示不限制;當redis記憶體資料集快到達maxmemory時,redis會實行資料淘汰策略。redis提供6種資料淘汰策略:
volatile-lru:從已設定過期時間的記憶體資料集中挑選最近最少使用的資料 淘汰;
volatile-ttl: 從已設定過期時間的記憶體資料集中挑選即將過期的資料 淘汰;
volatile-random:從已設定過期時間的記憶體資料集中任意挑選資料 淘汰;
allkeys-lru:從記憶體資料集中挑選最近最少使用的資料 淘汰;
allkeys-random:從資料集中任意挑選資料 淘汰;
no-enviction(驅逐):禁止驅逐資料。(預設淘汰策略。當redis記憶體資料達到maxmemory,在該策略下,直接返回oom錯誤);
關於maxmemory設定,通過在redis.conf中maxmemory引數設定,或者通過命令config set動態修改
關於資料淘汰策略的設定,通過在redis.conf中的maxmemory-policy引數設定,或者通過命令config set動態修改
如127.0.0.1:6379>config get maxmemory
1) 「maxmemory"
2) 「0」
127.0.0.1:6379>config set maxmemory 100mb
ok127.0.0.1:6379>config get maxmemory
「maxmemory"
「104857600」
注意,在64bit系統下,maxmemory設定為0表示不限制redis記憶體使用,在32bit系統下,maxmemory不能超過3gb;
應用:如mysql裡有2000w條資料,redis只存20w條熱點資料,如何保證redis中的資料都是熱點資料?
這就能設定最大記憶體,再設定淘汰策略,設定volatile-lru,allkeys-lru等都可以;
Redis中的事務
flushall清除所有的鍵值 1 multi 開啟事務,事務塊中的多條語句會按照順序放入佇列中。multi incr counter1 incr counter2 incr counter3 ping get counter1 2 exec 執行事務塊中的命令 3 watch 監視乙個或者多個ke...
redis中的事務
redis支援簡單的事務 redis與 mysql事務的對比 mysql redis 開啟 start transaction muitl 語句 普通sql 普通命令 失敗 rollback 回滾 discard 取消 成功 commit exec 注 rollback與discard 的區別 如果...
Redis 中的事務
redis支援簡單的事務 redis與 mysql 事務的對比 mysql redis 開啟start transaction muitl 語句普通sql 普通命令 失敗rollback 回滾 discard 取消 成功commit exec 注 rollback 與discard 的區別如果已經成...