下载安装
Redis的稳定版是偶数,最新的稳定版是6.0.6,试了很多次,都报编译错误,最终放弃,选择了5.0.0。
推荐下载地址https://repo.huaweicloud.com/redis/
下载后,直接进入主目录下执行make
命令安装,安装完成后,src目录下出现redis-server脚本。
如果编译失败,执行以下命令
yum -y install cpp binutils glibc glibc-kernheaders glibc-common glibc-devel gcc make gcc-c++ libstdc++-devel tcl
修改配置
cp redis.conf /etc/
vi /etc/redis.conf
daemonize yes // 默认为no
bind 172.21.0.16//本机ip
requirepass 123321
redis-server /etc/redis.conf //启动
redis主从部署
主从复制的好处有2点:
1)避免redis单点故障
2)构建读写分离架构,满足读多写少的应用场景
1、在redis目录下依次创建目录conf和data,并将redis.conf依次复制到对应目录下
2、分别进入6380/6381修改配置文件
1)修改端口port
2)修改pidfile的文件路径
3)数据库的存放位置,分别为
dir /usr/local/redis/data/master/
dir /usr/local/redis/data/slave1
dir /usr/local/redis/data/slave1
4)从服务器设置slaveof,该命令可以将redis节点转换为redis从服务器
slaveof 127.0.0.1 6379
3、依次启动三个实例
./redis-server ../conf/redis-6379.conf
4、验证主从
1)失败原因:开启了密码验证
从节点增加配置:masterauth 123321
2)./redis-cli -p 6380//默认端口6379
3)查看节点状态
info replication
4)测试发现master写入的数据可以在从节点查询出结果
宕机处理
- 宕机分两种,从机宕掉
在redis从机重新启动后会自动加入主从架构,并自动完成数据同步,数据是增量同步。
- 主机宕掉
可以通过slaveof命令将从机设置为主机,主机恢复后再通过slaveof设置为从机,这个手动恢复的过程比较麻烦且容易出错,简单的方法是通过sentinel来实现。
- sentinel的功能有两点
1)监控主数据库和从数据库是否运行正常;
2)主数据出现故障后自动将从数据库转化为主数据库;
Redis哨兵模式
- 故障切换(Failover)
- 哨兵模式(sentinel)
哨兵是一个独立的进程,单个哨兵可能挂掉,多个哨兵不仅监控各个redis服务器,而且哨兵之间互相监控,检测哨兵是否还活着