Redis Cluster模式介绍与部署

一、数据分布

redis cluster采用哈希分区规则:离散度好、数据分布业务无关、无法顺序访问

1.节点取余分区:hask(key)%N,N为节点数量

优点:简单,常用于数据库分库分表

缺点:节点数量变化导致数据重新迁移

2.一致性哈希分区:每个节点分配一个token,构成一个哈希环,根据哈希值在环上找到第一个大于等于该哈希值的token节点

优点:节点的变动只影响相邻节点数据

缺点:节点变动导致数据无法移动,节点越小影响范围越大

3.虚拟槽分区

使用哈希函数把数据映射到固定范围的整数集合中,这些整数定义为槽,每个节点负责一定数量的槽

redis cluster采用该分区方法

虚拟槽分区:

redis槽范围0~16383

槽是集群内数据管理和迁移的基本单位

采用大范围槽的主要目的是为了方便数据拆分和集群扩展

由于高质量的哈希算法,每个槽所映射的数据通常比较均匀

 

二、cluster集群功能限制:

1.key批量操作支持有限。只支持具有相同slot的key进行批量操作

2.key事务操作支持有限

3.key做为分区的最小粒度,不能将大的键值对象进行分区

4.不支持多数据库空间,只能使用db0

5.复制结构只支持一层,从节点只能复制主节点

 

三、手动搭建集群:

修改配置文件

# 设置配置文件目录 sudo mkdir -p /etc/redis/redis-cluster/7000 cd /etc/redis/ # 创建一份配置文件,Cluster架构-3主3从 sudo cp redis.conf redis-cluster/7000/redis.conf # 修改配置文件 sudo vim redis-cluster/7000/redis.conf

配置文件修改如下部分

daemonize yes # redis后台运行 pidfile /var/run/redis_7000.pid #需要修改为 reids_{port}.pid 的形式 port 7000 #端口 cluster-enabled yes #开启集群 cluster-config-file 7000/nodes_7000.conf #集群的配置文件 nodes_{port}.conf的形式 cluster-node-timeout 5000 #超时时间 5s够了 appendonly yes #开启AOF日志

启动Redis

cd /etc/redis/redis-cluster/ sudo redis-server 7000/redis.conf sudo redis-server 7001/redis.conf sudo redis-server 7002/redis.conf sudo redis-server 7003/redis.conf sudo redis-server 7004/redis.conf sudo redis-server 7005/redis.conf

创建集群

sudo redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 --cluster-replicas 1 # 等一会 然后输入 yes

查看集群状态:cluster nodes

注意事项:

  1. 无论是在redis-server 5.x版本,还是老的ruby创建集群的方式, 在create cluster的环节是不能配置redis密码的
  2. 如果设置了密码,redis-cli --cluster create会报用户认证失败的错误
  3. 在搭建集群时去除所有redis节点的密码,也就是redis-cli --cluster create 的时候是没有密码参数配置的
  4. 当集群配置完成后,通过config set的方式动态的为每一个节点设置密码(不需要重启redis,且重启后仍然有效)
  5. $ redis-cli -h 127.0.0.1 -p 6379 -c
  6. 127.0.0.1:6379> config set requirepass 'password' // 设置密码
  7. 127.0.0.1:6379> config set masterauth 'password' // 设置连接密码
  8. 127.0.0.1:6379> config rewrite // 把config set 操作写入配置文件中
  9. 设置密码后连接集群 redis-cli -h 127.0.0.1 -p 6379 -c -a password

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值