iT邦幫忙

2021 iThome 鐵人賽

DAY 19
0
DevOps

玩耍開源k8s30天系列 第 19

day19 : redisDB keyDB on K8S (上)

redisDB是一個快速輕量的key-value資料庫,因為可以無狀態的執行,我個人認為非常適合運行在k8s上。

redis本身是一套將資料儲存於記憶體的資料庫,如果不透過RDB或是AOF的方式,資料就不會長久儲存,通常會將redis做為cache server,讓短期使用資料能夠快速存取,但是如果不幸發生資料存滿的情況就會變成read only的狀況,因此他的evictionPolicy使用對於可用性算是滿重要的。

而大部分在使用redis的架構會選擇

  1. 單台redis : 可接受資料損失及單點故障,存取不到redis時會去DB取資料。
  2. 1主2從3哨兵 : 透過哨兵的機制去偵測redis節點的可用性,但是master節點會負責讀寫,所以master的壓力較大,並且架構上不容易擴充。
  3. 3主3從 : 每個master節點有一個對應的slave,在master節點無法運行時slave節點會接手運行,主節點寫入壓力透過slot的方式分散至各自的一組主從架構中,也可以再擴充為主從節點,slave節點希望增加也可以,但是缺點是資料沒有強一制性。

3主3從常見架構圖
https://ithelp.ithome.com.tw/upload/images/20210919/2013966118NN8xZwmo.png
透過redis operator的方式同樣是使用3主3從的架構

keyDB是redis切分出來的一個分支,會特別提到使用主要是因為在某些情境下他的速度更為快速的關係,與redis上有幾項差異為keyDB為多執行序(如果用redis 6以上也是多執行緒)、keyDB不透過RDB或是AOF儲存,不過使用上還是要評估是否符合業務需求。

KeyDB cluster 有一個強調的特性為active replication,他可以主動複製訊息,主動複製可以減少master節點的loading,同時因為keydb完全支援redis api的關係,主動複製也可以對redis做執行呢!



上一篇
day18 : kafka服務應用 on K8S (下)
下一篇
day20 : redisDB keyDB on K8S (下)
系列文
玩耍開源k8s30天31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言