redis集群创建
背景
之前工作中接触到redis OPS居高不下,所以需要将其扩展为redis-cluster。
实现
首先了解一个概念,并不是OPS越高越好,OPS虽然可以反映redis处理能力,但是因为redis是单线程使用,只会使用到一个核。所以需要使用到集群。redis版本是6.2.6;所以集群也使用该版本。
机器规划
在资源受限的情况下,我们可以考虑使用三台服务器搭建一套三主三从服务器:
IP | 内存 | CPU |
---|---|---|
192.168.0.100 | 4G | 2C |
192.168.0.101 | 4G | 2C |
192.168.0.102 | 4G | 2C |
这里是一个通用模板,具体配置需要根据场景来设定,以下是一些例子,仅作参考:
场景一: 小型业务系统
- 数据量:50GB
- 业务请求量:中等,QPS在1万左右
- 高可用性:需要基本的高可用,主从架构(3主3从)
根据这些信息,我们大概可以推测每个节点负责1/3的数据量,因为redis大部分操作都是单线程,再根据主从架构,也就是说最少需要6个核心。
内存需求:
- 每个主节点的内存需求 = 50GB / 3 ≈ 16.67GB。
- 预留20%用于缓存和其他操作,所以每个主节点需要大约 20GB 内存。
- 每个从节点需要和主节点相同的内存,因此从节点每个也需要20GB。
- 整个集群的内存需求 = 3(主)× 20GB + 3(从)× 20GB = 120GB。
最后推断出:
CPU需求:至少6个核心(3主3从,每个实例1核心)。
内存需求:总计120GB(每个节点20GB,3主3从)
ansible
redis6版本开始部署集群变得简单起来,不像之前需要使用Ruby来创建。
优化
redis进程保活
redis进程绑核
进一步提升
- 如何有效扩容节点?
- 怎么
redis集群创建
http://example.com/2024/09/18/redis集群创建/