Redis4.0.2集群环境搭建
Redis集群安装配置
为了实现redis高可用性。使用三台虚拟机来实现redis的集群环境安装
1.redis集群架构图
Redis版本 redis-4.0.2
三台服务器:分别为192.168.112.128、192.168.112.129、192.168.112.131
2.软件安装
1) tar -zxvf redis-4.0.2.tar.gz
2) cd redis-4.0.2
3) make && make install
3.集群环境安装
1) 首先在192.168.112.128机器上 /opt/renzl/redis 目录下创建 redis_cluster 目录;
mkdir redis_cluster
2) 进入redis_cluster目录,分别创建7000、7001两个文件夹
mkdir 7000
3) 然后拷贝redis.conf文件到7000目录下
cp /opt/renzl/redis-4.0.2/redis.conf /opt/renzl/redis
第一个路径为解压路径
第二个路径为redis安装路径
4) 别的机器全部执行以上命令或者在一台机器配置完成通过scp命令复制,进行修改
5) 所有机器安装完成后进行如下配置以192.168.112.128 7000为例
vim /opt/renzl/redis/redis_cluster/7000/redis.conf
port 7000 //端口7000,
bind 192.168.112.128 //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
daemonize yes //redis后台运行
pidfile /var/run/redis_7000.pid //pidfile文件对应7000,可选
cluster-enabled yes //开启集群 把注释#去掉
cluster-config-file nodes_7000.conf //集群的配置 配置文件首次启动自动生成 7000
cluster-node-timeout 15000 //请求超时 默认15秒,可自行设置
appendonly yes //aof日志开启 有需要就开启,它会每次写操作都记录一条日志
6) 重复以上操作,直至所有的配置文件修改完成
7) 分别启动redis服务
redis-server redis_cluster/7000/redis.conf //实际路径自己调整
每台机器的两个端口启动
8) 通过命令查看是否启动成功
ps -ef | grep redis
正常启动完成后,开始创建集群
9) 创建集群
Redis 官方提供了 redis-trib.rb 这个工具,就在解压目录的 src 目录中,复制到一台服务器上如:192.168.112.128
cp /opt/renzl/redis-4.0.2/src /opt/renzl/redis
10) 在执行命令前,需要安装ruby 安装过程忽略,但是必须安装ruby2.2以上版本,否则在创建集群时会提示版本有问题。
11) 通过命令来创建集群环境
./redis-trib.rb create --replicas 1 192.168.112.128:7000(所有启动的redis实例,使用空格隔开)
给定 redis-trib.rb 程序的命令是 create,表示创建一个新的集群。选项 --replicas 1 表示为集群中的每个主节点创建一个从节点。之后跟着的其他参数则是实例的地址列表, 指定使用这些地址所指示的实例来创建新集群。
12) 创建成功
“All 16384 slots covered.”表示集群中的 16384 个槽都有至少一个主节点在处理, 集群运作正常。从打印出来的信息也可以看出,7000,7002,7004是主节点,其它三个是从节点。
13) 通过客户端连接redis服务器
./redis-cli -h 192.168.112.128 -c -p 7000
加参数 -C 可连接到集群,因为上面 redis.conf 将 bind 改为了ip地址,所以 -h 参数不可以省略。
14) 集群验证
set name renzl
会用CRC16算法来取模得到所属的slot,然后将这个key 分到哈希槽区间的节点上,
如果这个时候能过命令来获取将得到如下变化:
连接会自动切换到192.168.112.131:7002上