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恢复后数据是不会同步的这个时候需要手动同步