Redis源码集群搭建

Redis源码集群搭建

官方亲测可用的适配openIM的redis集群版本为6.2.5,高于7.0版本(go语言使用的官方库还未适配7.0以上版本),其他版本暂未测试),默认创建三主三从,搭建环境为三台服务器,处于同一个网段,如果不处于同一个网段,可将reids配置文件中的bind地址修改为默认IP地址或者外网IP地址(需要保证端口对外)。

1.下载redis安装包

wget http://download.redis.io/releases/redis-6.2.5.tar.gz

2.解压redis安装包

tar xzvf redis-6.2.5.tar.gz

3.使用make编译redis

cd redis-6.2.5
make

4.创建redis实例文件夹

默认示例一台机器的一主一从,分别监听在5000和5001端口下,此处使用的示例是/data/目录下,如果没有 请mkdir /data,cd /data,执行以下步骤:

cd ..(和redis-6.2.5在同一级目录)
mkdir redis-5000 redis-5001

5.设置redis开机自启动

如果没有rc.local文件,请参考解决方法

vim/etc/rc.local
#添加如下
/usr/local/bin/redis-server /data/redis-5000/redis.conf
/usr/local/bin/redis-server /data/redis-5001/redis.conf

6.将redis安装到两个实例中以及全局环境中

实际上就是将编译好的redis二进制文件放置到不同实例文件夹中,放置usr/local/bin目录下可全局访问。

cd redis-6.2.5
make  PREFIX=/data/redis-5000 install
make  PREFIX=/data/redis-5001 install
make  PREFIX=/usr/local/bin install

7.拷贝redis的配置文件到实例中

cp redis.conf ../redis-5000/

8.修改配置文件内容

进入redis-5000文件夹中修改redis.conf,修改的参数如下:

#此处如果三台机器处于局域网同一个网段,可配置局域网地址,否则使用默认地址即可
bind 0.0.0.0 
#redis保护模式,开启必须设置redis密码
protected-mode yes
#开启redis以守护进程后台运行
daemonize yes
#redis密码
requirepass "123456"
#redis监听端口
port 5000
#redis数据文件存储目录,也可配置绝对路径
dir ../
#redis进程pid文件,路径是相对于dir,也可配置绝对路径
pidfile ./redis_5000.pid
#redis日志文件,路径是相对于dir,也可配置绝对路径
logfile "./redis_5000.log"
#开启redis集群模式
cluster-enabled yes
#指定redis集群节点信息文件
cluster-config-file nodes-5000.conf
#redis节点之间超时时间
cluster-node-timeout 15000
#开启redis的aof存储
appendonly yes
#设置redis的最大cache内存,根据自己机器资源情况确定
maxmemory 10GB
#设置redis淘汰策略,当内存超过限制的maxmemory,在设置了过期时间的key中,淘汰过期时间剩余最短的
maxmemory-policy volatile-ttl
#从节点同步主节点需要的redis密码,保持和requirepass一致
masterauth 123456

9.拷贝redis.conf到其他实例中


cp  /redis-5000/redis.conf /redis-5001/
#vim redis-5001/redis.conf,进入输入模式下输入:
:%s/5000/5001/g
#替换配置文件的信息为5001实例信息

10.启动redis实例

#分别进入各个实例的bin文件下,本示例中为/data/redis-5000/bin,/data/redis-5000/bin
./redis-server ../redis.conf
#ps查看结果
ps -axu|grep redis
root     21885  0.0  0.0 165064 10204 ?        Ssl  14:08   0:00 ./redis-server 172.21.39.64:5000 [cluster]
root     21894  0.0  0.0 165064 10404 ?        Ssl  14:08   0:00 ./redis-server 172.21.39.64:5001 [cluster]

11.重复前面操作到另外两台机器上

注:可以将上面的redis实例文件夹目录打包传递到另外两台服务器中,然后仿照以上方式启动

12.创建redis集群

#分别进入各个实例的bin文件下
#三台机器都启动了redis实例后(即启动了三主三从),使用以下命令创建redis集群指定主从,默认前三台为主,后三台为从,--cluster-replicas 1表示每个主节点拥有一个从节点,-a 为redis密码
./redis-cli --cluster create 172.31.10.251:5000 172.31.9.49:5000 172.31.11.71:5000 172.31.10.251:5001 172.31.9.49:5001 172.31.11.71:5001 --cluster-replicas 1 -a 123456

此命令结束后,正常情况下出现:输入yes确认节点分配,成功如下:

redis集群搭建节点分配结果
如果遇到问题,请查看集群搭建常见问题

13.集群信息查看

#使用该命令查看集群信息,ip和端口以及密码替换成自己设置的
./redis-cli --cluster info 172.31.9.49:5000 -a 123456

在这里插入图片描述

至此redis集群搭建完毕.

14.集群搭建常见问题

#出现wating。。。。。。或者
could not connect to Redis at 172.21.39.54:5000: 
No route to host
#即防火墙端口未打开,需要开启内网安全组端口访问,
#防火墙开放端口命令,如下5000+10000=15000为集群总线端口也需要开启
firewall-cmd --add-port=5000/tcp --permanent
firewall-cmd --add-port=5001/tcp --permanent
firewall-cmd --add-port=15000/tcp --permanent
firewall-cmd --reload
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值