最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

安装Redis6.2.7主从哨兵集群教程

来源:博客园

一、环境描述

部署模式为1主2从3哨兵,对应的机器如下

操作系统IP地址主从分配端口安装服务(可任选)安装地址
CentOS 7.91.0.0.1110010redis-6.2.7.tar.gz/opt/software/redis
CentOS 7.91.0.0.11哨兵110086redis-6.2.7.tar.gz/opt/software/redis
CentOS 7.91.0.0.1210010redis-6.2.7.tar.gz/opt/software/redis
CentOS 7.91.0.0.12哨兵210086redis-6.2.7.tar.gz/opt/software/redis
CentOS 7.91.0.0.13从210010redis-6.2.7.tar.gz/opt/software/redis
CentOS 7.91.0.0.13哨兵310086redis-6.2.7.tar.gz/opt/software/redis

二、下载Redis

1、将Redis包先下载到本地


【资料图】

下载地址:https://download.redis.io/releases/redis-6.2.7.tar.gz

2、上传至Linux服务器

三、安装Redis

1、安装Redis所需依赖

# 由于 redis 是用 C 语言开发,安装之前必先确认是否安装 gcc 环境(gcc -v),如果没有安装,执行以下命令进行安装yum install -y gcc

2、安装Redis

# 进入上传包位置cd /opt/package/# 在package目录解压redis安装包tar -zxvf redis-6.2.7.tar.gz# 进入redis待安装文件目录下cd redis-6.2.7/# 进行编译redis-6.2.7make# 进行安装redis-6.2.7并指定安装目录make install PREFIX=/opt/software/redis

3、启动Redis服务

1、前台启动redis服务

# 进入redis目录cd /opt/software/redis/bin/# 启动redis./redis-server

如上图:redis启动成功,但这种启动需要一直打开窗口,不能进行其他操作,不方便。按 ctrl + c可以关闭窗口。

2、配置 redis 主从服务

从 redis 的源码目录中复制 redis.conf 到 redis 的安装目录

# 复制redis配置文件cp /opt/package/redis-6.2.7/redis.conf /opt/software/redis/bin/# 新建redis日志目录mkdir -p /data/redis-logs/# 新建redis日志空文件echo "" > /data/redis-logs/redis_error.log
1、编辑主节点 redis.conf 配置文件(1.0.0.11)
# 进入redis目录下cd /opt/software/redis/bin/# 编辑redis配置文件vim redis.conf

修改内容

# 绑定为本机IP地址或者0.0.0.0都可访问由 bind 127.0.0.1        修改成:    bind 0.0.0.0# 注意,此处不要采用默认地址由 port 6379            修改成:    port 10010# 修改成后台进程启动由 daemonize no            修改成:    daemonize yes# 配置日志路径由 logfile ""            修改成:    logfile "/data/redis-logs/redis_error.log"#关闭保护模式(此配置很重要,不配置将无法实现主从切换)由 protected-mode yes    修改成:    protected-mode no# 以下配置主从节点密码,追加在最后即可# 由# requirepass foobared    去掉#修改成:requirepass redis@2023# 配置主节点的密码,哨兵容灾切换使用masterauth redis@2023# 配置从节点密码requirepass redis@2023# 以下配置追加在配置文件后面,防止运维误操作这些不安全的命令# 禁用命令rename-command KEYS ""rename-command FLUSHALL ""rename-command FLUSHDB ""rename-command CONFIG ""
2、编辑从节点 redis.conf 配置文件(1.0.0.12、1.0.0.13)
# 进入redis目录下cd /opt/software/redis/bin/# 编辑redis配置文件vim redis.conf

修改内容

# 绑定为本机IP地址或者0.0.0.0都可访问由 bind 127.0.0.1        修改成:    bind 0.0.0.0# 注意,此处不要采用默认地址由 port 6379            修改成:    port 10010# 修改成后台进程启动由 daemonize no            修改成:    daemonize yes# 配置日志路径由 logfile ""            修改成:    logfile "/data/redis-logs/redis_error.log"#关闭保护模式(此配置很重要,不配置将无法实现主从切换)由 protected-mode yes    修改成:    protected-mode no# 以下配置主从节点密码,追加在最后即可# 由requirepass foobared    去掉#修改成:requirepass redis@2023# 配置主节点的密码,哨兵容灾切换使用masterauth redis@2023# 配置从节点密码requirepass redis@2023# 以下配置主节点ip、端口,追加在最后即可# 主节点ip、端口slaveof 1.0.0.11 10010# 以下配置追加在配置文件后面,防止运维误操作这些不安全的命令# 禁用命令rename-command KEYS ""rename-command FLUSHALL ""rename-command FLUSHDB ""rename-command CONFIG ""

3、配置 sentinel 哨兵服务

从 redis 的源码目录中复制 sentinel.conf 到 redis 的安装目录

# 复制redis配置文件cp /opt/package/redis-6.2.7/sentinel.conf /opt/software/redis/bin/# 新建redis日志目录mkdir -p /data/redis-logs/# 新建redis日志目录echo "" > /data/redis-logs/sentinel_error.log
1、编辑哨兵 sentinel.conf 配置文件(1.0.0.11、1.0.0.12、1.0.0.13)
# 进入redis目录下cd /opt/software/redis/bin/# 编辑redis配置文件vim sentinel.conf

修改内容

# 注意,此处不要采用默认地址由 port 26379            修改成:    port 10086#关闭保护模式(此配置很重要,不配置将无法实现主从切换)由 #protected-mode no    去掉修改成:    protected-mode no# 修改成后台进程启动由 daemonize no            修改成:    daemonize yes# 配置日志路径由 logfile ""            修改成:    logfile "/data/redis-logs/sentinel_error.log"# 监控主节点的ip与端口(注意最后2不变)由 sentinel monitor mymaster 127.0.0.1 6379 2修改成:sentinel monitor mymaster 1.0.0.11 10010 2# master 密码由 # sentinel auth-pass mymaster MySUPER--secret-0123passw0rd修改成:sentinel auth-pass mymaster redis@2023

4、配置环境变量

# 修改配置文件vim /etc/profile# 在最后面加入export REDIS_HOME=/opt/software/redisexport PATH=$PATH:$REDIS_HOME/bin# 使配置文件立即生效source /etc/profile

5、设置开机启动

1、添加开机启动redis服务
vim /etc/systemd/system/redis.service

复制粘贴以下内容

[Unit]Description=redis-serverAfter=network.target[Service]Type=forkingExecStart=/opt/software/redis/bin/redis-server /opt/software/redis/bin/redis.confPrivateTmp=true[Install]WantedBy=multi-user.target

注意:ExecStart配置成自己的路径

redis服务操作命令

# 启动redis服务service redis startsystemctl start redis.service# 停止redis服务service redis stopsystemctl stop redis.service# 重新启动服务service redis restartsystemctl restart redis.service# 查看服务当前状态service redis statussystemctl status redis.service# 设置开机自启动systemctl enable redis.service# 停止开机自启动systemctl disable redis.service# 重新加载redis服务的配置文件systemctl daemon-reload
2、添加开机启动sentinel服务
vim /etc/systemd/system/sentinel.service

复制粘贴以下内容

[Unit]Description=redis-sentinelAfter=network.target[Service]Type=forkingExecStart=/opt/software/redis/bin/redis-sentinel /opt/software/redis/bin/sentinel.confPrivateTmp=true[Install]WantedBy=multi-user.target

注意:ExecStart配置成自己的路径

sentinel服务操作命令

# 启动redis服务systemctl start sentinel# 停止redis服务systemctl stop sentinel# 重新启动服务systemctl restart sentinel# 查看服务当前状态systemctl status sentinel# 设置开机自启动systemctl enable sentinel# 停止开机自启动systemctl disable sentinel# 重新加载redis服务的配置文件systemctl daemon-reload

彩蛋:查看redis版本

redis-server -v

6、验证主从是否正常

1、启动redis服务
# 启动redis服务systemctl start redis# 查看状态[root@nwtest1 ~]# ps -ef | grep redisroot     958   1  0 14:31 ?   00:00:00 /opt/software/redis/bin/redis-server 0.0.0.0:10010root    2234   1  0 14:32 ?   00:00:00 /opt/software/redis/bin/redis-sentinel *:10086 [sentinel]root    2241   218  0 14:32 pts/0  00:00:00 grep --color=auto redis
2、在主节点验证
# 连接客户端[root@nwtest1 /]$ redis-cli -h 1.0.0.11 -p 10010# 验证密码1.0.0.11:10010> auth redis@2023OK# 查看主节点配置1.0.0.11:10010> info

主节点,找到Replication模块查看

# Replicationrole:master #当前角色是主机connected_slaves:2 #主节点下有两个丛机slave1:ip=1.0.0.12,port=10010,state=online,offset=84,lag=1 #从机的IP和端口slave0:ip=1.0.0.13,port=10010,state=online,offset=84,lag=1 #从机的IP和端口master_failover_state:no-failovermaster_replid:b946de53f8034fbf0517d55debb909135af4d550master_replid2:0000000000000000000000000000000000000000master_repl_offset:84second_repl_offset:-1repl_backlog_active:1repl_backlog_size:1048576repl_backlog_first_byte_offset:1repl_backlog_histlen:84
3、在从节点验证
# 连接客户端[root@nwtest2 /]$ redis-cli -h 1.0.0.12 -p 10010# 验证密码1.0.0.12:10010> auth redis@2023OK# 查看主节点配置1.0.0.12:10010> info

从节点,找到Replication模块查看

# Replicationrole:slave #当前角色是从机master_host:1.0.0.11 #主机IPmaster_port:10010  #主机端口master_link_status:upmaster_last_io_seconds_ago:0master_sync_in_progress:0slave_read_repl_offset:365821slave_repl_offset:365821slave_priority:100slave_read_only:1replica_announced:1connected_slaves:0master_failover_state:no-failovermaster_replid:898b54bb1bba7d833927119184fb1eb554427211master_replid2:0000000000000000000000000000000000000000master_repl_offset:365821second_repl_offset:-1repl_backlog_active:1repl_backlog_size:1048576repl_backlog_first_byte_offset:1repl_backlog_histlen:365821
4、测试主从

1、主节点

1.0.0.11:10010> set k1 v1OK1.0.0.11:10010>

2、从节点

1.0.0.12:10010> get k1"v1"1.0.0.12:10010>1.0.0.13:10010> get k1"v1"1.0.0.13:10010> 
5、启动sentinel服务
# 脚本启动sentinel服务systemctl start sentinel# 查看状态[root@nwtest1 redis]# ps -ef | grep redisroot   933   1    0 10:09 ?   00:00:34 /opt/software/redis/bin/redis-sentinel *:10086 [sentinel]root   934   1    0 10:09 ?   00:00:29 /opt/software/redis/bin/redis-server 0.0.0.0:10010root   318   9    0 12:41 pts/0    00:00:00 grep --color=auto redis
6、在任意节点验证
# 连接客户端[root@nwtest1 /]$ redis-cli -h 1.0.0.11 -p 10086# 查看哨兵信息1.0.0.11:10010> info sentinel

找到Sentinel模块查看

# Sentinelsentinel_masters:1sentinel_tilt:0sentinel_running_scripts:0sentinel_scripts_queue_length:0sentinel_simulate_failure_flags:0# 哨兵已经监听到主节点IP端口与运行状态,并且有2个从节点3个哨兵master0:name=mymaster,status=ok,address=1.0.0.11:10010,slaves=2,sentinels=3

四、卸载Redis

1、停止redis运行

# 查看redis进程ps -ef | grep redis# 杀死redis进程:kill -9 进程号# 或者关闭redis服务systemctl stop redis.service

2、删除Redis相关文件

# 查找根下所有名字包含Redis的文件sudo find / -name redis*# 根据查询地址卸载Redisrm -rf 相关地址rm -rf /opt/software/redis# 删除或注释环境变量中的内容# export REDIS_HOME=/opt/software/redis# export PATH=$PATH:$REDIS_HOME/bin# 保存退出,然后使配置文件生效source /etc/profile# 关闭开机自启chkconfig redis off# 删除开机启动文件rm -rf /etc/systemd/system/redis.service

关键词: 配置文件 开机启动 环境变量