搭建环境的过程,就是踩坑的过程,这里记录下,防止过几天忘记了
服务器 | ip |
---|---|
主服务器 | 192.168.123.174 |
从服务器 | 192.168.123.177 |
从服务器 | 192.168.123.178 |
[root@localhost ~]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
源一:
# 下载epel源
yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
源二:
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
清理和重建yum缓存
yum -y clean all && yum makecache
使用yum search redis
和 yum info redis.x86_64
可知,redis
版本是3.2.12
# 安装redis命令
yum -y install redis
安装完毕后,执行systemctl status redis
可知redis.service
文件位置。
从redis.service
文件可知redis-server
命令位置,并猜测redis-cli
等redis相关命令
也是在该目录下。也可知redis.conf
配置所在目录,并猜测redis相关配置也在该目录下。
redis.conf
配置文件修改redis.conf配置文件位于/etc/redis.conf
注意:三台安装好的
redis
服务按照下面配置进行修改
1.配置端口:
port 6379
2.修改绑定ip为服务器内网ip地址,做绑定,三台各自填写各自的ip地址
bind 0.0.0.0
2.保护模式修改为否,允许远程连接
protected-mode no
3.设定密码
requirepass "XXXX"
4.设定主库密码与当前库密码同步,保证从库能够提升为主库
masterauth "XXXX"
5.打开AOF持久化支持
appendonly yes
6.守护进程
daemonize yes
配置完毕后,启动一台redis服务
,作为redis主从的主服务
。另外两台作为从服务,在redis.conf
新增slaveof 主节点ip 主节点端口
配置,以及主服务的密码。
配置完成后,主服务执行命令,tail -f /var/log/redis/redis.log
,观察日志情况。
两台从服务执行systemctl start redis
redis-cli -a 123456 info replication
info replication
至此,采用yum源的方式搭建一主两从redis服务,搭建完成。
哨兵模式实现的就是Redis主服务挂了,会选择一台从服务变成主服务。
bind 0.0.0.0
port 26379
dir "/usr/local/redis/sentinel_data"
sentinel monitor mymaster 192.168.123.174 6379 1
sentinel down-after-milliseconds mymaster 3000
sentinel auth-pass mymaster 123456
pidfile "/usr/local/redis/sentinel.pid"
logfile "/usr/local/redis/sentinel.log"
其它两台从redis服务也做一样配置修改,然后启动。当把主Redis服务进程给杀死,如下图:
查看另外一台Redis服务,其主Redis变成另外一个服务器IP了。
systemctl start redis
重启之前杀死的redis进程。启动后变成从Redis。而且测试了Redis的读写也和预期一样。说明哨兵模式搭建成功。