同一台机器下,部署两个Redis服务器应用实战
背景:
随着业务上涨,有可能会因为机器资源紧张,从而导致单个Redis服务器不够用,往往需要在同一台机器中部署两个Redis或者Sentinel服务来保障更稳定的集群架构。
1.多个Redis部署
第一个Redis服务6379端口的安装配置这里不作介绍。
可以参考我的前几篇随笔中的介绍(https://www.cnblogs.com/zyf98/p/15664985.html)
第二个Redis服务6380端口的部署与配置:
(主要是注意持久化文件的路径和文件名不能和第一个Redis服务冲突)
sudo mkdir -p /etc/redis6380 //创建6380的配置文件目录
sudo cp 原来的redis.conf 新的redis6380.conf //copy一份配置文件
sudo chown -R 用户:用户 /etc/redis6380 //修改文件权限与原来一致
sudo vim /etc/redis6380/redis6380.conf //修改6380的配置文件port 6380 //修改端口
redis6380.conf修改部分如下,其余部分不做修改:
logfile "/redis6380/redis6380.log" //修改日志文件路径
dir "/redis6380" //修改持久化文件路径
appendfilename "appendonly6380.aof" //不管开不开启aof,先重命名下aof持久化文件
dbfilename "dump6380.rdb" //rdb持久化文件名
sudo mkdir -p /mnt/redis6380 //创建6380持久化文件目录
sudo chown -R 用户:用户 /mnt/redis6380 //修改文件权限
cd /usr/lib/systemd/system/
sudo cp redis.service redis6380.service //copy systemd 文件
sudo vim redis6380.service //修改托管文件
redis6380.service文件修改如下,其余配置不做修改:(原来的redis.service具体配置可以参考我的前几篇文章(https://www.cnblogs.com/zyf98/p/15664985.html))
ExecStart=/usr/local/bin/redis-server /etc/redis6380/redis6380.conf
ExecStop=/usr/local/bin/redis-cli -h 本机IP -p 6380 shutdown
启动Redis6380服务:
sudo systemctl start redis6380 //启动redis6380
2.多个哨兵部署
原sentinel.conf配置文件参考:
port 26379
bind 本机IP
dir "/redis"
logfile "/redis/sentinel.log"
daemonize yes
loglevel notice
sentinel deny-scripts-reconfig yes
maxclients 4064
protected-mode no
pidfile "/var/run/redis.pid"
sentinel monitor mymaster 主服务IP 6379 2
sentinel down-after-milliseconds mymaster 20000
Sentinel26380部署与配置:
sudo cp 原sentinel.conf 新sentinel26380.conf //copy一份配置文件 vim sentinel26380.conf //编辑修改一下
sentinel26380.conf 修改如下,其余不做修改:
port 26380
dir "/redis6380"
logfile "/redis6380/sentinel26380.log"
配置systemd启动文件
cd /usr/lib/systemd/system/
sudo cp redis-sentinel.service redis-sentinel26380.service
vim redis-sentinel26380.service
修改 部分redis-sentinel26380.service 文件,其余部分不做修改:
ExecStart=/usr/local/bin/redis-sentinel /redis6380/sentinel26380.conf
ExecStop=/usr/local/bin/redis-cli -h 本机IP -p 26380 shutdown
启动Sentinel26380:
sudo systemctl start redis-sentinel26380