您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關怎樣進行Redis緩存,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
緩存(和數據庫的關系,只能保證最終一致性,不能保證強一致性)
高性能高并發
可實現分布式鎖
單線程工作模型
避免了頻繁上下文切換
采用非阻塞的I/O多路復用機制(多個I/O流入隊并復用同一個線程運行)
Key
指向五種內存模型
String
:常用于緩存等
Hash
:常用于原生結構性緩存等
List
:可實現簡單隊列,可實現分頁
Set
:可用于與計算差并交集(比如雙方喜好的計算),還具備去重特性
SortedSet
(或稱ZSet
):可實現排行榜(增量操作較耗時,讀取操作通過跳躍表實現了高性能)、延時任務,范圍查詢等
RDB快照策略
在指定的時間間隔內生成數據集的時間點快照(point-in-time snapshot)
有點:體積小、快照時資源消耗較少、還原速度快
缺點:數據不完整、易丟失數據
AOF日志策略
記錄服務器執行的所有寫操作命令,并在服務器啟動時,通過重新執行這些命令來還原數據集
后臺可對 AOF 文件進行重寫以縮減其體量
優點:不易丟失數據
缺點:日志時資源消耗較多、體積容易過大、還原速度較慢
RDB&AOF混合策略
Redis 重啟時, 它會優先使用 AOF 文件來還原數據集,其次考慮RDB快照
關閉策略
不提供持久化及恢復支持
過期鍵值刪除策略(鍵值過期時間記錄在過期表中,過期鍵值不保證立刻釋放。沒有過期時間的鍵值近似為持久的)
定期刪除(定期漸進地查找過期的鍵值)
惰性刪除(讀取鍵值時候檢查是否過期)
內存不足時的釋放策略
noeviction:阻止新的寫入報錯
allkeys-lru:全量鍵值中移除最近最少使用key
allkeys-random:全量鍵值中隨機移除某個key
volatile-lru:移除最少使用的帶ttl的key
volatile-random:隨機移除帶ttl的key
volatile-ttl:移除過期時間更早的帶ttl的key
淘汰策略配置maxmemory-policy
info # 服務概況和統計信息 dbsize #當前庫中key數量 monitor #監控操作 #### 庫操作 #### select dbname #選庫 #### 鍵操作 #### keys key_pattern #搜索匹配正則的key #### 值操作 #### type key #檢查key值類型 del key #刪除key值 flushdb #清空當前庫下key的值 flushall #清空所有庫下key的值
緩存雪崩
大批量緩存同時失效或者緩存重建期間收到大并發請求,從而導致系統性能急劇下降
可能原因:大量緩存采用了相同過期時間、機器重啟等等
解決方案:失效時間追加隨機值,采用隊列或加鎖等方式來單線程更新緩存
看完上述內容,你們對怎樣進行Redis緩存有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。