Redis 3.2.6 Cluster部署
2017-02-24 15:24
405 查看
两台虚拟机、6个redis实例 模拟集群环境
192.168.1.102:6379
192.168.1.102:6380
192.168.1.102:6381
192.168.1.103:16379
192.168.1.103:16380
192.168.1.103:16381
1.redis安装
2.创建redis节点
在两台虚拟机上依次执行install_server.sh脚本分别各安装3个redis实例。在安装提示时输入上面约定的端口(如:6380),改变端口后同时配置文件、日志文件和数据存储目录名会自动加上端口号,以和其它实例区别。如果对安装路径没有特殊要求的话,在安装时只需改变端口号,其它都保持默认即可。默认配置文件如下:
配置文件:/etc/redis/port.conf
日志文件:/etc/log/redis_port.log
数据存储目录(aof文件、rdb文件、集群节点配置文件):/var/lib/redis/port
注意:port为你设置的端口
Redis服务安装完成之后,服务会同时启动,且会自动加入到系统服务中,并设为开机启动。
3.修改节点配置
3.1 修改ip:
Redis默认绑定的是127.0.0.0地址,需要将其修改为本机IP或0.0.0.0,集群中的各个节点才能互相通信。
192.168.1.102:
192.168.1.103:
3.2 修改端口号:
安装完redis服务后,配置文件中集群的相关端口配置默认为6379,需要将其它几个非6379的端口修改过来。
192.168.1.102:
3.3 检查修改结果:
有5处修改端口的地方
3.4 修改集群配置:
依次将每个实例配置文件中的以上注释打开,并修改成对应的值。
3.5 重启所有redis节点服务:
3.6 可以看一下重启之后的redis进程:
4.创建集群
4.1 安装ruby环境:
因为创建集群的命令是一个ruby脚本
4.2 创建集群:
参数说明:
1> redis-trib.rb脚本默认安装在$REDIS_SRC_HOME/src目录下,在安装redis服务时,已将其拷贝到/usr/bin目录下
2> create:创建集群参数
3> –replicas 1:每个master有1个slave节点
根据节点顺序确定master与slave节点,前边的优先选择做为master节点,后边优先选择做为slave节点。由脚本自动分配,但master和slave绝对不会分配在同一台机器上。
4.3 检查集群状态
可以看到集群中
master为192.168.1.102:6379 192.168.1.103:16379 192.168.1.103:16380
slave 为192.168.1.102:6380 192.168.1.102:6381 192.168.1.103:16381
5.集群测试
5.1 插入数据:
set foo abc本想在102的6379节点保存foo这个key,但102的6379节点并没有存,而是将请求转发给了103的16380节点存储。而且客户端自动切换到了16380节点。这是神马情况?这其实是redis集群数据存储的机制,通过crc16算法计算key的hash值,然后对16384取模,得到一个0~16384以内的slot值来决定由哪个节点存储,而每一个节点在创建集群的时候,都会均匀的分配相应的slot数量。
5.2 HA测试:
我们来kill掉一个master节点
这时再登录另一个节点查看集群状态
可以看到192.168.102:6379节点已经挂掉,原来是slave的192.168.1.103:16379节点成为新的master
把挂掉的节点重启,该节点变成了slave节点
参考原文http://blog.csdn.net/xyang81/article/details/51881900
192.168.1.102:6379
192.168.1.102:6380
192.168.1.102:6381
192.168.1.103:16379
192.168.1.103:16380
192.168.1.103:16381
1.redis安装
tar -zxvf redis-3.2.6.tar.gz cd redis-3.2.6 make && make install ln -s /usr/local/bin/redis* /usr/bin/ cp src/redis-trib.rb /usr/bin/
2.创建redis节点
cd /usr/local/redis/utils/ ./install_server.sh
在两台虚拟机上依次执行install_server.sh脚本分别各安装3个redis实例。在安装提示时输入上面约定的端口(如:6380),改变端口后同时配置文件、日志文件和数据存储目录名会自动加上端口号,以和其它实例区别。如果对安装路径没有特殊要求的话,在安装时只需改变端口号,其它都保持默认即可。默认配置文件如下:
配置文件:/etc/redis/port.conf
日志文件:/etc/log/redis_port.log
数据存储目录(aof文件、rdb文件、集群节点配置文件):/var/lib/redis/port
注意:port为你设置的端口
Redis服务安装完成之后,服务会同时启动,且会自动加入到系统服务中,并设为开机启动。
3.修改节点配置
3.1 修改ip:
Redis默认绑定的是127.0.0.0地址,需要将其修改为本机IP或0.0.0.0,集群中的各个节点才能互相通信。
192.168.1.102:
sed -i 's/127.0.0.1/0.0.0.0/g' /etc/redis/6379.conf sed -i 's/127.0.0.1/0.0.0.0/g' /etc/redis/6380.conf sed -i 's/127.0.0.1/0.0.0.0/g' /etc/redis/6381.conf
192.168.1.103:
sed -i 's/127.0.0.1/0.0.0.0/g' /etc/redis/16379.conf sed -i 's/127.0.0.1/0.0.0.0/g' /etc/redis/16380.conf sed -i 's/127.0.0.1/0.0.0.0/g' /etc/redis/16381.conf
3.2 修改端口号:
安装完redis服务后,配置文件中集群的相关端口配置默认为6379,需要将其它几个非6379的端口修改过来。
192.168.1.102:
sed -i 's/6379/6380/g' /etc/redis/6380.conf sed -i 's/6379/6381/g' /etc/redis/6381.conf192.168.1.103:
sed -i 's/6379/16379/g' /e b0dd tc/redis/16379.conf sed -i 's/6379/16380/g' /etc/redis/16380.conf sed -i 's/6379/16381/g' /etc/redis/16381.conf
3.3 检查修改结果:
cat /etc/redis/6380.conf | awk '{if($0 !~ /^$/ && $0 !~ /#/) {print $0}}' | grep 6380 port 6380 pidfile /var/run/redis_6380.pid logfile /var/log/redis_6380.log dir /var/lib/redis/6380 cluster-config-file nodes-6380.conf
有5处修改端口的地方
3.4 修改集群配置:
依次将每个实例配置文件中的以上注释打开,并修改成对应的值。
cluster-enabled yes cluster-config-file nodes-6379.conf cluster-node-timeout 5000 appendonly yes ###################################################################### cluster-enabled:开启集群模式 cluster-config-file:保存节点的配置信息,如集群中所有节点的IP、端口、状态、节点类型(master/slave)、节点ID、slots等 cluster-node-timeout:节点心跳超时时长 appendonly:开启aof文件存储
3.5 重启所有redis节点服务:
service redis_xxxx restart #_xxxx为对应redis实例的端口号
3.6 可以看一下重启之后的redis进程:
4.创建集群
4.1 安装ruby环境:
因为创建集群的命令是一个ruby脚本
yum install -y ruby rubygem gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org/ gem install redis
4.2 创建集群:
cd /usr/local/redis/src/ ./redis-trib.rb create --replicas 1 192.168.1.102:6379 192.168.1.102:6380 192.168.1.102:6381 192.168.1.103:16379 192.168.1.103:16380 192.168.1.103:16381
参数说明:
1> redis-trib.rb脚本默认安装在$REDIS_SRC_HOME/src目录下,在安装redis服务时,已将其拷贝到/usr/bin目录下
2> create:创建集群参数
3> –replicas 1:每个master有1个slave节点
根据节点顺序确定master与slave节点,前边的优先选择做为master节点,后边优先选择做为slave节点。由脚本自动分配,但master和slave绝对不会分配在同一台机器上。
4.3 检查集群状态
./redis-trib.rb check 192.168.1.102:6379
可以看到集群中
master为192.168.1.102:6379 192.168.1.103:16379 192.168.1.103:16380
slave 为192.168.1.102:6380 192.168.1.102:6381 192.168.1.103:16381
5.集群测试
5.1 插入数据:
set foo abc本想在102的6379节点保存foo这个key,但102的6379节点并没有存,而是将请求转发给了103的16380节点存储。而且客户端自动切换到了16380节点。这是神马情况?这其实是redis集群数据存储的机制,通过crc16算法计算key的hash值,然后对16384取模,得到一个0~16384以内的slot值来决定由哪个节点存储,而每一个节点在创建集群的时候,都会均匀的分配相应的slot数量。
5.2 HA测试:
我们来kill掉一个master节点
这时再登录另一个节点查看集群状态
可以看到192.168.102:6379节点已经挂掉,原来是slave的192.168.1.103:16379节点成为新的master
把挂掉的节点重启,该节点变成了slave节点
参考原文http://blog.csdn.net/xyang81/article/details/51881900
相关文章推荐
- CentOS7单节点部署redis-cluster
- 部署redis cluster
- Redis Cluster部署、管理和测试
- kubernetes 1.5安装 Redis 3.2.6 Cluster StatefulSet
- redis3.0.7 cluster 集群部署
- kubernetes 1.5安装 Redis 3.2.6 Cluster StatefulSet
- redis 3.0.7 cluster 集群部署
- redis-cluster安装部署记录
- openstack heat部署redis_cluster
- redis集群部署(redis-cluster)
- redis-cluster部署及数据迁移
- CacheCloud+Redis Cluster 3部署
- CacheCloud+Redis Cluster 3部署
- 如何用docker部署redis cluster
- Windos Docker Redis cluster 集群部署(linux一样)
- redis演练(9) redis Cluster 集群快速部署&failover情况
- Linux下redis的安装及部署
- Redis Cluster 添加/删除 完整折腾步骤
- Redis系列-安装部署维护篇