部署环境
centos7
redis6.0.5
根据集群可用原则,可用节点数量 > 总节点数量/2,因此需要使用奇数个节点,因此,为保证集群高可用性,至少使用三台服务器部署集群
安装包下载
下载地址:https://download.redis.io/releases/
下载完成后将包拷贝到安装目录/opt/redis
或者使用wget命令下载:wget http://download.redis.io/releases/redis-6.0.5.tar.gz
安装
安装编译环境gcc
yum install gcc -y
编译安装
进入/opt/redis目录
cd /opt/redis
解压安装包
tar -zxf redis-6.0.5.tar.gz
编译安装
make
make install
注意:
1.make 和make install以后,redis-server默认安装在/usr/local/bin/目录下
2.make可能会报错:make[1]: *** [server.o] 错误 1。原因是因为yum安装的gcc版本是4.8.5,redis编译安装需要更高的gcc版本
解决办法:升级gcc,升级过程如下
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
#这句是临时生效:scl enable devtoolset-9 bash
#修改环境变量:echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile
查看版本是否升级成功:gcc -v
重新编译安装(安装时指定安装目录):
make
make PREFIX=/usr/local/redis install
安装完成后,拷贝解压目录下的配置文件到安装目录进行配置:cp redis.conf /usr/local/redis/
注意:从库可以不使用包安装,直接将主库的安装目录拷贝过来配置即可使用
例:在主库中将安装目录拷贝到从库中
tar -cf redis.tar /usr/local/redis
scp redis.tar 192.168.142.12:/usr/local/
tar -xf redis.tar
服务配置启动
主库redis.conf 文件配置
编辑配置文件:vim /usr/local/redis/redis.conf
bind 0.0.0.0 #服务器IP
daemonize yes #配置后台运行
requirepass Ab@123456 #配置密码
masterauth "Ab@123456" #主服务器配置密码认证
从库redis.conf 文件配置(两台从库相同配置)
编辑配置文件:vim /usr/local/redis/redis.conf
bind 0.0.0.0 #服务器IP
daemonize yes #配置后台运行
requirepass Ab@123456 #配置密码
replicaof 192.168.142.11 6379 #主服务器地址
masterauth Ab@123456 #主服务器认证密码
启动服务
1.直接启动服务:/usr/local/redis/bin/redis-server /usr/local/redis/redis.conf
2.配置成system服务
vim /usr/lib/systemd/system/redis.service
[Unit]
Description=Redis
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/redis.conf
ExecReload=/usr/local/redis/bin/redis-server -s reload
ExecStop=/usr/local/redis/bin/redis-server -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
启动服务:systemctl start redis
开机自启:systemctl enable redis
配置哨兵(三台服务器相同配置)
拷贝解压目录配置文件到安装目录
cp /opt/redis/redis-6.0.5/sentinel.conf /usr/local/redis/
编辑哨兵配置文件
vim /usr/local/redis/sentinel.conf
daemonize yes
sentinel monitor mymaster 192.168.142.11 6379 2
requirepass Ab@123456
sentinel auth-pass mymaster Ab@123456
服务启动
直接启动哨兵服务:/usr/local/redis/bin/redis-sentinel /usr/local/redis/sentinel.conf
配置成system服务
vim /usr/lib/systemd/system/redis-sentinel.service
[Unit]
Description=Redis-sentinel
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-sentinel /usr/local/redis/sentinel.conf
ExecReload=/usr/local/redis/bin/redis-sentinel -s reload
ExecStop=/usr/local/redis/bin/redis-sentinel -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
服务启动:systemctl start redis-sentinel
服务自启:systemctl enable redis-sentinel
开启防火墙端口:redis使用6379/tcp;哨兵使用26379/tcp
firewall-cmd --permanent --add-port=6379/tcp
firewall-cmd --permanent --add-port=26379/tcp
firewall-cmd --reload
集群状态查看
登录redis
进入安装目录:
/usr/local/redis/bin/redis-cli -a Ab@123456
查看集群状态
INFO Replication
若主库显示有一个master,两个slave,则表示集群部署完成
主库状态
从库状态
备注:使用redis集群,如JAVA后端程序,将java配置文件配置为支持哨兵模式的reids配置即可使用
-----------日常记录---------------