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做执行呢!



<<:  Day 04 HTML/JavaScript Attribute vs Property

>>:  Day4# 变数宣告

Day-20 : devise 安装 part 1

devise是一套使用者认证(Authentication)套件,是Rails社群中最广为使用的一套...

D30 - 「来互相伤害啊!」:猫狗集合!

有场景了,来让人物登场吧!(≧∀≦) 首先将场景载入游戏中。 src\components\wind...

Day 04. Zabbix 可监控的服务、设备、应用

我把它分成使用基本款 (可安装 Agent)、通用款 (支援监控类通讯协定)、简易款 (无法安装 A...

Day 07 CSS <字体属性>

CSS Fonts(字体) 属性 用於定义字体系列、大小、粗细 和文字样式(ex:斜体) 1.字体系...

Day 6 - Laravel 8.0 如何快速建立API

在Day 3 - 如何运用 Laravel 框架设计模式规划大型专案,当中提到Controller-...