redis5.0.7安装
wget http://download.redis.io/releases/redis-5.0.7.tar.gz
tar xzf redis-5.0.7.tar.gz
#需要gcc环境
yum -y install gcc*
cd /usr/local/redis-5.0.7/
make
cd /usr/local/redis-5.0.7/src
#安装redis
make install
#进入redis-5.0.7创建目录
cd /usr/local/redis-5.0.7/
mkdir bin
mkdir etc
#移动redis.conf到etc下
mv redis.conf ./etc/
#将mkreleasehdr.sh、redis-benchmark、redis-check-aof、redis-cli、redis-server
移动到 /usr/local/redis-5.0.7/bin/ 目录下
cd ./src/
mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-cli redis-server /usr/local/redis-5.0.7/bin/
#编辑配置文件
cd /usr/local/redis-5.0.7/etc/
vim redis.conf
#文件中的daemonize属性改为yes(表明需要在后台运行)
#redis.conf配置文件中的 bind 127.0.0.1 这一行给注释掉,这里的bind指的是只有指定的网段才能远程访问这个redis,注释掉后,就没有这个限制了。
#redis.conf配置文件中的 protected-mode 设置成no(默认是设置成yes的,防止了远程访问,在redis3.2.3版本后)
#设置开机自启
vi /etc/rc.d/rc.local
#添加
/usr/local/redis-5.0.7/bin/redis-server /usr/local/redis-5.0.7/etc/redis.conf
#启动redis
cd /usr/local/redis-5.0.7/bin/
./redis-server /usr/local/redis-5.0.7/etc/redis.conf
#redis修改密码
cd /usr/local/redis-5.0.7/
redis-cli
config set requirepass 123456(123456就是密码)
#或修改配置文件
requirepass ASDFasdf123
开启6379端口
firewall-cmd --add-port=6379/tcp --permanent
重载入添加的端口
firewall-cmd --reload
Redis主从同步
概念:
主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master/leader),后者称为从节点(slave/follower) ; 数据的复制是单向的,只能由主节点到从节点。Master以写为主,Slave以读为主。
环境:
192.168.11.11 6379
192.168.11.12 16379
192.168.11.13 26379
#登录到redis
redis-cli -h 192.168.11.11 -p 6379 -a password #这里是密码
redis-cli -h 192.168.11.12 -p 16379 -a password
redis-cli -h 192.168.11.12 -p 26379 -a password
#在两个从库配置
#如果主库没有密码可以直接输入连接
SLAVEOF 192.168.11.11 6379
#主库有密码,使用 CONFIG SET 命令在从库上指定主库的密码
SLAVEOF NO ONE # 停止当前的复制
CONFIG SET masterauth ASDFasdf123
SLAVEOF 192.168.11.11 6379 # 设置为主库
INFO replication #验证状态
role:slave
master_host:192.168.11.11
master_port:6379
master_link_status:up
#为了确保 Redis 重启后自动保持一主两从的配置,你需要在每个从库的 redis.conf 配置文件中进行设置
vim redis.conf
# 指定主库的 IP 和端口
slaveof 192.168.11.11 6379
# 如果主库有密码,设置主库密码
masterauth ASDFasdf123
Redis哨兵模式
在实现Redis主从集群的自动故障检测、故障转移与配置更新
#首先需要配置好主从,目前架构
master: 192.168.11.11:6379
slave1: 192.168.11.12:16379
slave2: 192.168.11.12:26379
#需要配置 Redis Sentinel 来自动监控主库、从库并在主库出现故障时自动进行主从切换
vim /usr/local/work/redis/etc/sentinel.conf #sentinel.conf此文件需要自己创建
#后台运行
daemonize yes
# 哨兵的监听端口,默认是 36379
port 36379
# 定义监控的主库,这里的 redis-master 是你给主库的一个别名
# 2 表示需要至少 2 个哨兵同意进行主从切换
sentinel monitor redis-master 192.168.11.11 6379 2
# 主库的密码,如果主库有密码,设置主库的密码以便哨兵能连接
sentinel auth-pass redis-master your_master_password
# 主库在 5 秒钟(5000 毫秒)内没有响应,则判断为主库宕机
sentinel down-after-milliseconds redis-master 5000
# 主库宕机后,选举新的主库前等待的时间,单位是毫秒
sentinel failover-timeout redis-master 15000
# 指定新主库应该给从库传播的密码
sentinel parallel-syncs redis-master 1
#设置日志
logfile "/usr/local/work/redis/logs/sentinel.log"
#将以上文件发给另外两个slave 如果端口号冲突记得修改端口号
启动哨兵模式并验证状态
#启动哨兵模式,记得在三个节点都启动
/usr/local/work/redis/bin/redis-server /usr/local/work/redis/etc/sentinel.conf --sentinel
#验证状态
redis-cli -p 36379 #使用命令连接哨兵
SENTINEL masters #查看master状态
SENTINEL slaves redis-master #查看从库状态
#注意此命令在不同的redis版本会有所不同如果该命令报错用这个:SENTINEL replicas redis-master
#模拟down机
#首先kill掉原master
kill -9
#此时再来检查集群状态 master是否有跳转
redis-cli -p 36379
SENTINEL masters
#如果此时在新master新增数据 然后将旧master恢复后数据是不会同步的这个时候需要手动同步