是否使用過 Redis 叢集,叢集的原理是什麼?
阿新 • • 發佈:2021-01-08
no-enviction( 驅逐) :禁止驅逐資料
注意這裡的 6 種機制,volatile 和 allkeys 規定了是對已設定過期時間的資料集淘汰資料還是從全部資料集淘汰資料, 後面的 lru、ttl 以及 random 是三種不同的淘汰策略, 再加上一種 no-enviction 永不回收的策略。
使用策略規則:
1、如果資料呈現冪律分佈,也就是一部分資料訪問頻率高,一部分資料訪問頻率 低, 則使用 allkeys-lru
2、如果資料呈現平等分佈, 也就是所有的資料訪問頻率都相同, 則使用allkeys-random
12、為什麼 edis 需要把所有資料放到記憶體中?
13、Redis 的同步機制瞭解麼?
答:Redis 可以使用主從同步,從從同步。第一次同步時,主節點做一次 bgsave, 並同時將後續修改操作記錄到記憶體 buffer, 待完成後將 rdb 檔案全量同步到複製節點, 複製節點接受完成後將 rdb 映象載入到記憶體。載入完成後, 再通知主節點將期間修改的操作記錄同步到複製節點進行重放就完成了同步過程。
答:可以將多次 IO 往返的時間縮減為一次,前提是 pipeline 執行的指令之間沒有因果相關性。使用 redis-benchmark 進行壓測的時候可以發現影響 redis 的 QPS 峰值的一個重要因素是 pipeline 批次指令的數目。
15、是否使用過 Redis 叢集,叢集的原理是什麼?
1) 、Redis Sentinal 著眼於高可用, 在 master 宕機時會自動將 slave 提升為master, 繼續提供服務。
2) 、Redis Cluster 著眼於擴充套件性, 在單個 redis 記憶體不足時, 使用 Cluster 進行分片儲存。
答:有 A, B, C 三個節點的叢集,在沒有複製模型的情況下,如果節點 B 失敗了, 那麼整個叢集就會以為缺少 5501-11000 這個範圍的槽而不可用。