可以使用docker安装,但是我还是喜欢直接装在服务器上,就此记录一下。
我安装的是Redis6.2.1,到官网下载源码包[官网地址](https://redis.io/download)
由于redis是群投票机制,要求至少6个节点才能组成redis集群,我们使用了三台物理机,每台起2个redis节点。
IP | 端口 |
---|---|
192.168.11.201 | 16379,36379 |
192.168.11.202 | 16379,36379 |
192.168.11.203 | 16379,36379 |
我发现两个建集群,我开16379端口,26329也会占用,不知为什么,所以这里端口中间隔开26379。
下载Redis6.2.1,上传到服务器/usr/local路径下
所有节点服务器都需要进行以下操作, 编译安装时要求gcc版本未5.3以上版本
先执行gcc -v 查看当前gcc版本
我们的服务器没有gcc编译器,所以需要安装gcc
Centos版本默认安装的是4.8.5版本的gcc,版本过低,需要升级,升级依次输入以下指令
yum install -y centos-release-scl
yum install -y devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
yum install -y systemd-devel
echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile
source /etc/profile
升级完成后查看gcc版本
安装redis
解压之前上传的redis-6.2.1.tar.gz文件
tar -zxvf redis-6.2.1.tar.gz
进入redis-6.2.1文件夹
创建16379和36379两个文件夹,并将redis.conf配置文件分别复制进这2个文件夹
mkdir {16379,36379}
cp redis.conf 16379/redis16379.conf
cp redis.conf 36379/redis36379.conf
进入redis源码文件夹进行安装
cd /usr/local/redis-6.2.1/src/
make BUILD_WITH_SYSTEMD=yes USE_SYSTEMD=yes
make install
修改redis配置文件
vim /usr/local/redis-6.2.1/16379/redis16379.conf
其中,修改的配置项如下
#bind 0.0.0.0
protected-mode no
port 16379
protected-mode no
daemonize no
supervised systemd
pidfile /var/run/redis_16379.pid
logfile ""#需要日志文件就填写,如"/usr/local/redis/7001/7001.log"
appendonly yes
appendfilename "appendonly16379.aof"
cluster-enabled yes
cluster-config-file nodes-16379.conf
cluster-node-timeout 5000
如果自己定义的路径需要自己创建文件夹,redis并不会创建文件夹。
同理修改redis36379.conf,也可以将redis16379,conf复制一份到36379文件夹中,并将16379改为36379。
使用Systemd管理Redis服务
vim /etc/systemd/system/redis@.service
[Unit]
Description=Redis persistent key-value database
After=network.target
[Service]
Type=notify
ExecStart=/usr/local/bin/redis-server /usr/local/redis-6.2.1/%i/redis%i.conf --supervised systemd
ExecStop=/usr/local/bin/redis-cli -p %i shutdown
LimitNOFILE=10240
TimeoutStartSec=90s
TimeoutStopSec=90s
Restart=always
[Install]
WantedBy=multi-user.target
如果后期要修改.service文件,需要执行systemctl daemon-reload指令,刷新.service文件
完成后,启动服务
systemctl start redis@16379.service
systemctl start redis@36379.service
netstat -lnp|grep redis
查看启动状态
设置开机自启动
systemctl enable redis@16379.service
systemctl enable redis@36379.service
以上操作在三台服务器都执行一遍。实例全部启动后 ,在任意服务器上创建redis集群。
注意:若未关闭防火墙,需要将需要的端口加入白名单。
firewall-cmd --zone=public --add-port=16379/tcp --permanent
firewall-cmd --zone=public --add-port=36379/tcp --permanent
firewall-cmd --reload
创建redis集群
redis-cli --cluster create 192.168.11.201:16379 192.168.11.201:36379 192.168.11.202:16379 192.168.11.202:36379 192.168.11.203:16379 192.168.11.203:36379 --cluster-replicas 1
如果创建失败,检查配置文件和配置文件里配置的文件夹权限。
查看集群节点
redis-cli -c -h 192.168.11.201 -p 16379 cluster nodes
删除redis集群
全部删除可以把所有redis节点关闭.
systemctl stop redis@16379.service
systemctl stop redis@36379.service
然后删除所有redis节点的以下文件