redis命中率計算

2021-09-02 21:08:33 字數 1754 閱讀 9089

redis提供了info這個命令,能夠隨時監控伺服器的狀態,只用telnet到對應伺服器的埠,執行命令即可:

[quote]telnet localhost 6379

info [/quote]

在輸出的資訊裡面有這幾項和快取的狀態比較有關係:

[quote]keyspace_hits:14414110

keyspace_misses:3228654

used_memory:433264648

expired_keys:1333536

evicted_keys:1547380 [/quote]

通過計算hits和miss,我們可以得到快取的命中率:14414110 / (14414110 + 3228654) = 81% ,乙個快取失效機制,和過期時間設計良好的系統,命中率可以做到95%以上

有個ruby gem叫redis-stat,它利用info命令展現出更直觀的資訊報表,推薦:

[url]

參考:[url]

[size=large][color=red][b]redis集群搭建與簡單使用[/b][/color][/size]

[url]

[size=large][color=red][b]redis學習三,redis主從複製和哨兵模式[/b][/color][/size]

[url]

[size=large][color=red][b]redis-sentinel哨兵模式集群方案配置[/b][/color][/size]

[url]

[size=large][color=red][b]mysql裡有2000w資料,redis中只存20w的資料,如何保證redis中的資料都是熱點資料[/b][/color][/size]

兩點建議:

1、mysql可以通過使用時間戳對資料表進行分割槽,將熱點資料聚集到乙個分割槽,然後redis只從這個表的分割槽中取資料

2、redis本身有頁面淘汰策略,選擇合適的策略即可

[url]

[url]

[url]

關於 redis 佇列的一道面試題

[url]

[url]

使用redis setnx 命令實現分布式鎖

[url]

[size=large][color=red][b]兩種常見的快取淘汰演算法lfu&lru[/b][/color][/size]

lru和lfu是不同的!

lru是最近最少使用頁面置換演算法(least recently used),也就是首先淘汰最長時間未被使用的頁面!

lfu是最近最不常用頁面置換演算法(least frequently used),也就是淘汰一定時期內被訪問次數最少的頁!

比如,第二種方法的時期t為10分鐘,如果每分鐘進行一次調頁,主存塊為3,若所需頁面走向為2 1 2 1 2 3 4

注意,當調頁面4時會發生缺頁中斷

若按lru演算法,應換頁面1(1頁面最久未被使用) 但按lfu演算法應換頁面3(十分鐘內,頁面3只使用了一次)

可見lru關鍵是看頁面最後一次被使用到發生排程的時間長短,

而lfu關鍵是看一定時間段內頁面被使用的頻率!

[color=blue][b]lru演算法適合:較大的檔案比如遊戲客戶端[/b][/color](最近載入的地**件)

[color=blue][b]lfu演算法適合:較小的檔案和教零碎的檔案比如系統檔案、應用程式檔案[/b][/color]

其中:lru消耗cpu資源較少,lfu消耗cpu資源較多。

[url]

[url]

redis命中率計算

redis提供了info這個命令,能夠隨時監控伺服器的狀態,只用telnet到對應伺服器的埠,執行命令即可 telnet localhost 6379 info在輸出的資訊裡面有這幾項和快取的狀態比較有關係 keyspace hits 14414110 keyspace misses 3228654...

Redis命中率計算

redis提供info命令,能夠隨時監控伺服器的狀態,只用telnet到對應伺服器的埠,執行命令即可 telnet localhost 6379 info在輸出的資訊裡面有這幾項和快取的狀態比較有關係 keyspace hits 14414110 keyspace misses 3228654 us...

Redis快取命中率

快取命中率的介紹 命中 可以直接通過快取獲取到需要的資料。不命中 無法直接通過快取獲取到想要的資料,需要再次查詢資料庫或者執行其它的操作。原因可能是由於快取中根本不存在,或者快取已經過期。通常來講,快取的命中率越高則表示使用快取的收益越高,應用的效能越好 響應時間越短 吞吐量越高 抗併發的能力越強。...