Redis5 cluster手动指定主从关系
创建配置文件
最小配置
bind 172.16.71.183 一定要写本机ip并且建立集群的时候要用这个ip建立
port 6379
cluster-enabled yes 启动集群
cluster-config-file nodes.conf 节点信息,自动生成
cluster-node-timeout 5000 超时时间
appendonly yes 持久化
**建议增加 **
dir /var/user/redis-5.0.3/6379/ 文件路径
pidfile /var/run/redis_6379.pid pid位置
daemonize yes 守护线程模式(后台启动)
requirepass “CSFW” 访问密码
masterauth “CSFW” 主机密码
创建配置文件
进入redis文件夹
创建6个文件夹7001 7002 7003 7004 7005 7006
mkdir 7001 7002 7003 7004 7005 7006
修改 redis.conf 如上配置
在每个文件夹中建立对应配置
[admin@wanmly redis-5.0.3]$ sed “s/6379/7001/g” redis.conf > ./7001/redis-7001.conf
[admin@wanmly redis-5.0.3]$ sed “s/6379/7002/g” redis.conf > ./7002/redis-7002.conf
[admin@wanmly redis-5.0.3]$ sed “s/6379/7003/g” redis.conf > ./7003/redis-7003.conf
[admin@wanmly redis-5.0.3]$ sed “s/6379/7004/g” redis.conf > ./7001/redis-7004.conf
[admin@wanmly redis-5.0.3]$ sed “s/6379/7005/g” redis.conf > ./7001/redis-7005.conf
[admin@wanmly redis-5.0.3]$ sed “s/6379/7006/g” redis.conf > ./7001/redis-7006.conf
启动redis
find ./700* | egrep “.(conf)” | awk ‘{system("./src/redis-server "$1)}’
等价于 分别执行 ./src/redis-server ./7001/redis-7001.conf
批量停止 ps -ef|grep redis|grep -v grep| awk ‘{system("kill -9 "$2)}’
创建集群
创建不含slaver 的集群
./src/redis-cli --cluster create 172.16.71.183:7001 172.16.71.183:7002 172.16.71.183:7003 --cluster-replicas 0
手动添加slaver
使用创建时的cluster-master-id 或执行 ./src/redis-cli --cluster check 172.16.71.183:7001 查看运行状态
挂载slaver
./src/redis-cli --cluster add-node 172.16.71.183:7004 172.16.71.183:7001 --cluster-slave --cluster-master-id ba8415845612eceeb50f89eaa44485a393b58d1a
./src/redis-cli --cluster add-node 172.16.71.183:7005 172.16.71.183:7001 --cluster-slave --cluster-master-id 52aa810b8d3cf6dfcf37fbb3d64805f632d6af91
./src/redis-cli --cluster add-node 172.16.71.183:7006 172.16.71.183:7001 --cluster-slave --cluster-master-id 18b31f22eccc86ca13bcd992776cd3987b572441
连接集群
./src/redis-cli -c -h 172.16.71.183 -p 7001 -a CSFW -a 密码
查看集群节点状态 CLUSTER NODES
其它
带密码访问
./redis-cli -h 127.0.0.1 -p 6379 -a Password 全局有效
或
先./redis-cli
输入auth +空格+ 刚才设置的密码 切换后需重新输入
** 端口**
redis 集群同时占用两个端口,普通TCP端口 6379 和数据端口 16379(10000【固定值】+6379)
散列标记
散列标记记录在Redis集群规范中,但要点是如果密钥中{}括号之间有子字符串,则只对字符串内部的内容进行散列,例如this{foo}key并another{foo}key 保证位于相同的散列槽中,并且可以在具有多个键作为参数的命令中一起使用。
set aa{bb}cc
set bb{bb}cc
上边两个命令的分片规则是由 {bb} 决定的
springboot 配置
spring:
redis:
cluster:
nodes: 172.16.71.183:7001,172.16.71.183:7002,172.16.71.183:7003,
172.16.71.183:7004,172.16.71.183:7005,172.16.71.183:7006
password: CSFW