Redis集群部署
redis源码包下载地址:http://download.redis.io/releases/
redis使用手册:http://redisdoc.com/index.html
下载需要注意的是: Redis 使用标准版本标记进行版本控制:major.minor.patchlevel。偶数的版本号表示稳定的版本, 例如 1.2,2.0,2.2,2.4,2.6,2.8,奇数的版本号用来表示非标准版本,例如2.9.x是非稳定版本,它的稳定版本是3.0。
Redis集群部署
下列部署方式采用的是redis-cli方式创建的redis集群,只有redis5.0以后的版本才支持该方式,之前的版本都是使用redis-trib.rb方式,但是需要安装ruby软件相对复杂。
注意:Redis集群至少需要3个master节点,所以现在总共有6个节点,就只能是1master对应1slave这种方式
服务规划:
我们使用3台设备进行搭建,每台设备上有两个节点,使用不同的端口进行部署
安装前准备(所有设备):
1.下载所需依赖包
yum -y install gcc-c++
2.关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
3.关闭SELinux
setenforce 0
vi /etc/selinux/config
SELINUX=enforcing改为SELINUX=disabled
安装redis(192.168.36.137)
1.解压安装包
#将安装包上传至/opt/instll下(个人习惯)
tar -zxvf /opt/install/redis-6.2.1/tar/gz
cd /opt/install/redis-6.2.1
#编译安装至/opt/redis7000下,7000是我们该redis使用的端口
make && make install PREFIX=/opt/redis7000
2.配置redis配置文件
mkdir -p /opt/redis7000/conf
cd /opt/install/redis-6.2.1
#将redis源码包里的redis.conf配置文件放置到我们redis安装路径下
mv redis.conf /opt/redis7000/conf/
vim /opt/redis7000/conf/redis.conf
1.bind 192.168.36.137 //将bind 127.0.0.1修改为自己本机的IP地址 2.daemonize yes //redis放置后台启动 3.port 7000 //设置端口 4.pidfile /opt/redis7000/redis_7000.pid 5.logfile /opt/redis7000/redis_7000.log 6.dir /opt/redis7000/redis_7000_dir 7.masterauth 123 //配置密码,所有节点统一 8.requirepass 123 //配置密码,所有节点统一 9.cluster-enabled yes //开启集群 10.cluster-config-file redis.conf //指定配置文件名称 11.cluster-node-timeout 15000 12.appendonly yes //开启aof持久化,要想了解redis持久化,可以看我之前写的,如果对于redis上的数据不是那么重要的话,也可以不进行redis持久化配置 13.no-appendfsync-on-rewrite yes //aof重写期间是否同步
mkdir /opt/redis7000/redis_7000_dir
3.复制redis7000创建第二个节点,使用7001端口
cp -r /opt/redis7000 /opt/redis7001
cd /opt/redis7001/conf/
#文档内容替换,替换7000字符成7001
sed -i "s/7000/7001/g" redis.conf
#修改dir数据文件名称
cd /opt/redis7001/
mv redis_7000_dir redis_7001_dir
至此,192.168.36.137设备上的两个redis就已经配置完成了!
4.将redis文件远程拷贝到其它设备上
scp -r /opt/redis7000 root@192.168.36.138:/opt
scp -r /opt/redis7000 root@192.168.36.139:/opt
然后修改其它两台设备上的redis文件名和dir文件名,并将redis.conf配置文件内容进行替换成对应的内容即可。
最后再将6个节点的redis全部启动即可。(进入redis的bin目录,使用./redis-cli ../conf/redis.conf命令启动)
创建redis集群
随便登录一台服务器上的一个节点,在此,我以192.168.36.137为例
cd /opt/redis7000/bin
#cluster-replicas 1代表1个master后有几个slave节点,1代表1个,所以6个节点将会产生3个master和3个slave
./redis-cli --cluster create 192.168.36.137:7000 192.168.36.137:7001 192.168.36.138:7002 192.168.36.138:7003 192.168.36.139:7004 192.168.36.139:7005 --cluster-replicas 1
#该命令只需要执行一次即可,后面哪怕我们重启了整个redis,也不需要执行第二次了
Can I set the above configuration? (type 'yes' to accept): yes //弹出该项,输入yes即可
连接redis集群
cd /opt/redis7000/bin
# -c代表连接集群,-a是我们的redis密码
./redis-cli -h 192.168.36.137 -p 7000 -c -a 123 --raw
#要想不提示下方的警告,在命令后加上 2>/dev/null即可
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. //该警告是我们的密码明文显示提示的警告
#查看redis集群信息
192.168.36.137:7000> cluster nodes
需要说明的是,redis集群中插入数据的话是随机存储到集群中的某个节点的,是一个分布式的存储,你只有进入到对应的节点,才可以看到相应的数据。
至此,redis集群就部署完成了!