redis 提供以下緩存機(jī)制:基本緩存:淘汰最長(zhǎng)時(shí)間未使用的、使用次數(shù)最少或使用次數(shù)最少的鍵值對(duì)。帶過期時(shí)間的緩存:使用 ttl 自動(dòng)過期鍵值對(duì),或使用 aof 和 rdb 持久化過期鍵值對(duì)。數(shù)據(jù)結(jié)構(gòu):哈希表、雙端隊(duì)列、集合和有序集合。分布式緩存:集群和分布式一致性算法提高了可伸縮性和高可用性。
Redis 緩存機(jī)制類型
Redis 提供了多種緩存機(jī)制,以滿足不同的應(yīng)用程序需求:
1. 基本緩存
LRU (Least Recently Used): 淘汰最長(zhǎng)時(shí)間未使用的鍵值對(duì)。
LRFU (Least Recently Frequently Used): 淘汰使用次數(shù)最少的鍵值對(duì)。
LFU (Least Frequently Used): 淘汰使用次數(shù)最少的鍵值對(duì),而不考慮時(shí)間戳。
2. 帶過期時(shí)間的緩存
TTL (Time to Live): 在指定時(shí)間后自動(dòng)過期鍵值對(duì)。
AOF (Append Only File): 持久化所有寫操作,可用于在重啟后恢復(fù)過期鍵值對(duì)。
RDB (Redis Database): 周期性地創(chuàng)建 Redis 數(shù)據(jù)的快照,可用于在系統(tǒng)故障后恢復(fù)過期鍵值對(duì)。
3. 數(shù)據(jù)結(jié)構(gòu)
哈希表: 存儲(chǔ)鍵值對(duì),用于快速查找和修改。
雙端隊(duì)列: 可用作 FIFO (先進(jìn)先出) 或 LIFO (后進(jìn)先出) 隊(duì)列。
集合: 存儲(chǔ)不重復(fù)的成員,用于快速查找是否存在特定成員。
有序集合: 存儲(chǔ)帶分?jǐn)?shù)的成員,用于快速查找和檢索按分?jǐn)?shù)排序的成員。
4. 分布式緩存
Cluster: 將 Redis 實(shí)例分組為集群,以提高可伸縮性和高可用性。
分布式一致性: 使用 Raft 或 Redis Sentinel 等一致性算法來確保不同集群節(jié)點(diǎn)間數(shù)據(jù)的同步。