安装redis6
依赖安装
yum -y install centos-release-scl scl-utils-build
yum -y install -y devtoolset-8-toolchain
scl enable devtoolset-8 bash
gcc --version
下载redis-6.2.1.tar.gz放/opt目录
tar -zxvf redis-6.0.10.tar.gz
cd redis-6.0.10
编译安装
make && make install
安装目录:/usr/local/bin
后台启动
复制一份redis.conf
mkdir -p /usr/local/redis
cp redis.conf /usr/local/redis
cd /usr/local/redis
mkdir -p /usr/local/redis/log/
mkdir -p /usr/local/redis/data/
修改配置文件
sed -i 's#bind 127.0.0.1#bind 0.0.0.0#g' redis.conf
sed -i 's#protected-mode yes#protected-mode no#g' redis.conf
sed -i 's#daemonize no#daemonize yes#g' redis.conf
sed -i 's#logfile ""#logfile "/usr/local/redis/log/redis-6379.log"#g' redis.conf
sed -i 's#dbfilename dump.rdb#dbfilename dump-6379.rdb#g' redis.conf
sed -i 's#dir ./#dir /usr/local/redis/data/#g' redis.conf
#echo "masterauth zkc@123" >> redis.conf
#echo "requirepass zkc@123" >> redis.conf
sed -i 's#appendfilename "appendonly.aof"#appendfilename "appendonly-6379.aof"#g' redis.conf
#echo "slave-read-only yes" >> redis.conf
#echo "slaveof 192.168.10.138 6379" >> redis.conf
daemonize yes #设置为后台启动
bind 0.0.0.0
protected-mode no #允许远程连接
requirepass zkc@Redis #设置登录密码
#appendonly yes
appendfilename "appendonly.aof"
logfile "/usr/local/redis/log/redis.log"
#持久化?件名称
dbfilename xdclass.rdb
#持久化?件存储路径
dir /usr/local/redis/data
#持久化策略, 10秒内有个1个key改动,执?快照
#save 10 1
启动
redis-server redis.conf
redis基本配置
网络相关配置
bind
protected-mode
port
tcp-backlog
timeout
tcp-keepalive
GENERAL通用
daemonize
pidfile
.loglevel
logfile
SECURITY安全
设置密码
LIMITS限制
maxclients
maxmemory
maxmemory-policy
maxmemory-samples
Redis的发布和订阅
Redis的发布和订阅
1、客户端可以订阅频道如下图
2、当给这个频道发布消息后,消息就会发送给订阅的客户端
发布订阅命令行实现
1、打开一个客户端订阅channel1
SUBSCRIBE channel1
2、打开另一个客户端,给channel1发布消息hello
publish channel1 hello
返回的1是订阅者数量
3、打开第一个客户端可以看到发送的消息
注:发布的消息没有持久化,如果在订阅的客户端收不到hello,只能收到订阅后发布的消息
主从复制
一主二从
服务器redis
主 192.168.166.140 6379
从 192.168.166.141 6379
从 192.168.166.142 6379
在两台从服务器的配置文件中添加
slaveof 192.168.166.140 6379
随便哪个位置
配置文件添加完成之后
重启redis
redis-cli shutdown
redis-server redis.conf
查看三台主机运行情况
info replication
打印主从复制的相关信息
已经搭建完成
redis常用三招
一主二从
薪火相传
反客为主
用 slaveof no one 将从机变为主机。
然后在其他从机上执行
SLAVEOF 192.168.166.141 6379
虽然原来的主机已经挂掉了,但是新的主机已经诞生,从机也变成新的从机。
高可用Sentinel哨兵介绍
也是自动版的反客为主
Sentinel哨兵是redis官方提供的高可用方案,可以用它来监控多个Redis服务实例的运
行情况。RedisSentinel是一个运行在特殊模式下的Redis服务器。RedisSentinel是在多个
Sentinel进程环境下互相协作工作的。
Sentinel系统有三个主要任务:
- 监控:Sentinel不断的检查主服务和从服务器是否按照预期正常工作。
- 提醒:被监控的Redis出现问题时,Sentinel会通知管理员或其他应用程序。
- 自动故障转移:监控的主Redis不能正常工作,Sentinel会开始进行故障迁移操作。将
一个从服务器升级新的主服务器。让其他从服务器挂到新的主服务器。同时向客户端
提供新的主服务器地址。
Sentinel 配置文件
port 26379
daemonize yes
# 从机上需要修改
sentinel monitor mymaster 192.168.166.140 6379 2
#格式:Sentinel monitor <name> <masterIP> <masterPort><Quorum 投票数>
redis-sentinel sentinel.conf
测试当192.168.166.140原来的master挂掉之后
自动推选192.168.166.142为master
当192.168.166.140重新恢复
会加入新的集群