Redis集群

一、在 6 台主机上做如下配置,并运行 redis 服务

1、装包
]#yum -y install gcc gcc-c++
]#tar -zxvf redis-4.0.8.tar.gz
]#cd redis-4.0.8/
]#make
]#make install
]#./utils/install_server.sh

搭建redis服务脚本redis-build.sh:
‘#!/bin/bash
yum -y install gcc gcc-c++ //依赖包
tar -xf redis-4.0.8.tar.gz //redis软件压缩包
cd /root/redis-4.0.8/
make;make install
./utils/install_server.sh
a=ifconfig eth0 | awk '/inet /{print $2}'
b=echo $a | awk -F. '{print $4}'
cp /etc/redis/6379.conf /etc/redis/6379.conf.bak
sed -i “s/^bind .*/bind a/g/etc/redis/6379.confsedis/port./port63b/g” /etc/redis/6379.conf
redis-cli shutdown
‘#start reids server
redis-server /etc/redis/6379.conf
’#stop redis sever: redis-cli -h ap63b shutdown

redis 常用操作指令
– Set keyname keyvalue // 存储
– get keyname // 获取
– Select 数据库编号 0-15 // 切换库
– Keys * // 打印所以变量
– Keys a // 打印指定变量
– Exits keyname // 测试是否存在
– ttl keyname // 查看生存时间
– type keyname // 查看类型
– move keyname dbname // 移动变量
– expire keyname 10 // 设置有效时间
– del keyname // 删除变量
– flushall // 删除所有变量
– save // 保存变量
– shutdown // 关闭服务

2、修改配置文件
]#vim /etc/redis/6379.conf
bind IP 地址
// 只写物理接口 IP 地址
daemonize yes
// 守护进程方式运行
port xxxx
// 端口号不要使用默认的 6379
cluster-enabled yes
// 开启集群
cluster-config-file nodes.conf
// 集群的配置文件不要使用默认的名称
cluster-node-timeout 5000
// 请求超时 5 秒创建集群

3、 在任意一台 redis 服务器上,执行创建集群的脚本
]#yum -y install ruby rubygems
]#rpm -ivh –nodeps ruby-devel-2.0.0.648-30.el7.x86_64.rpm
]#gem install redis-3.2.1.gem
]#cd redis-3.2.0/src/
]#./redis-trib.rb create –replicas 1 192.168.4.51:6351 192.168.4.52:6352 192.168.4.53:6353 192.168.4.54:6354 192.168.4.55:6355 192.168.4.56:6356

–replicas 1 表示 自动为每一个 master 节点,分配一个 slave 节点.搭建redis集群至少6台机器。

4、查看集群信息
任意一台主机访问本机的 redis 服务,查看即可
登入redis:]# redis-cli -c -h IP 地址 -p 端口

cluster nodes # 查看本机信息
cluster info

[[email protected] ~]# redis-cli -c -h 192.168.4.51 -p 6351

192.168.4.51:6351> CLUSTER nodes
192.168.4.51:6351> CLUSTER info

5、测试集群

在其中任意一台上存储数据 ,在其他任意一台上都可以获取数据。
存数据 set name jerry
取数据 get name

二、管理redis集群

1、redis-cli 命令
常用选项
– -h IP 地址
– -p 端口
– -c 访问集群
[[email protected] ~]# redis-cli -c -h 192.168.4.51 -p 6351

2、redis-trib.rb 脚本
语法格式:Redis-trib.rb 选项 参数
• 选项
– add-node 添加新节点
– check 对节点主机做检查
– reshard 对节点主机重新分片
– add-node –slave 添加从节点主机
– del-node 删除节点主机

3、如何选举 master 主机
把是 master 角色主机上的 Redis 服务 停止
]#redis-cli -h ip 地址 -p 端口 shutdown

对应是 slave 角色主机 是否能自动升级为 master

cluster status

注意: 原先是 master 服务启动后,身份是当前 master 的 slave

三、redis-trib.rb 脚本 选项总结

Redis集群

1、添加新节点
默认新主机被选为主:新主机做集群配置,并运行 redis 服务
将新主机添加到集群中
]# ./redis-trib.rb add-node 新主机 Ip: 端口 192.168.4.51:6351
手动对集群进行重新分片
src]# ./redis-trib.rb reshard 192.168.4.51:6351
查看分配的槽位
src]# ./redis-trib.rb check 192.168.4.51:6351

2、添加从节点
]# ./redis-trib.rb add-node –slave –master-id id 值 从节点 ip: 端口 192.168.4.51:6351
(如果不指定主节点的 id 的话,会把新节点 随机添加为 从节点 最少的主的从)

3、移除主节点
删除槽位
~]# redis-trib.rb reshard 192.168.4.51:6351
移除主节点
]# redis-trib.rb del-node 192.168.4.51:6351 被移除节点主机 id
]# redis-trib.rb del-node 192.168.4.51:6351 f6649ea99b2f01faca26217691222c17a3854381

4、移除从节点
从节点主机没有槽位范围,直接执行移除命令即可
redis-trib.rb del-node 192.168.4.51:6351 被移除主机的 ID
]#redis-trib.rb del-node 192.168.4.51:6351 9c507832f99b9af53563646a06c5b0525e8fcb4a

5、查看节点信息
src]# ./redis-trib.rb check 192.168.4.51:6351
192.168.1.51:6351> cluster info
192.168.1.51:6351> cluster nodes