Redis-集群

为什么需要集群

Redis的主从复制解决了读写分离,但是

内存容量不够,redis如何进行扩容?

并发写操作,redis如何分摊?

什么是集群

Redis集群实现了对Redis的水平扩容,即启动N个redis节点,将整个数据库分布存储在这N个节点中,每个节点存储总数据的1/N。

Redis集群通过分区(partition)来提供一定程度的可用性(availability):即使集群中有一部分节点无效或者无法进行通讯,集群也可以继续处理命令请求。

使用步骤

  1. 安装ruby环境
  2. 制作6个实例 6379 6380 6381 6389 6390 6391
  3. 配置修改
    • cluster-enabled yes 打开集群模式
    • cluster-config-file nodes-6379.conf 设定节点配置文件
    • cluster-node-timeout 15000 设定节点失联时间,超过该时间(毫秒),集群自动进行主从切换
  4. 将6个节点合成一个集群
    • 启动6个节点redis
    • 组合之前,请确保所有redis实例启动后,nodes-xxxx.conf文件都生成正常
  5. 以集群的方式进入客户端
    • redis-cli -c -p 端口号
  6. 通过 cluster nodes 命令查看集群信息

优缺点

优势

  1. 实现扩容
  2. 分摊压力
  3. 无中心配置相对简单

不足

  1. 不支持多键操作(mset、mget)
  2. 不支持多键的redis事务,lua脚本不被支持
  3. 由于集群方案出现较晚,很多公司已经采用了其他的集群方案,而代理或者客户端分片的方案想要迁移至redis cluster,需要整体迁移而不是逐步过渡,复杂度较大 。

最后更新: 2020年07月20日 11:48

原始链接: http://ligangit.com/2020/07/20/Redis-集群/

× 请我吃糖~
打赏二维码