1安装redis

下载redis安装包:redis-4.0.1.tar.gz

解压:

tar -zxvf redis-4.0.1.tar.gz

进入redis解压目录

cd redis-4.0.1

执行make 对Redis解压后文件进行编译

make

编译成功后,进入src文件夹,执行make install进行Redis安装

make install PREFIX=/usr/local/redis

安装完成之后,将配置文件redis.conf拷贝到安装目录下进行配置

cp /home/redis-4.0.1/redis.conf  /usr/local/redis/

在不同主机上面重复上面操作,这里安装安装3台(1主2从)。

2 redis主从复制配置

主服务器配置,这里只介绍基础的配置项

port 6379   #端口配置
daemonize yes  #后台运行
pidfile "/var/run/redis_6379.pid"   #运行进程ID保存文件
loglevel verbose  #日志级别
logfile "/usr/local/redis/log/redis.log"  #日志文件
databases 16  #数据库个数
rdbcompression yes  #数据压缩存储
dbfilename "dump.rdb"  #数据文件
dir "/usr/local/redis/data"  #数据文件存储目录
masterauth "secms123"  #主服务器认证密码,主从复制数据时用到(将三台密码配置相同,无论哪个作为主服务都能正常认证)
slave-read-only yes  #从服务器只读
requirepass "secms123" #服务器登陆认证密码

从服务器除了上面基本配置外还需要配置

masterauth "secms123"  #主从复制时链接主服务器的认证密码
slaveof 10.118.213.238 6379  #第一次启动时主服务器IP和端口(在启动自动切换后如果切换,会被修改当前主服务器的IP和端口)

至此 主从配置完成,可启动测试。只能在主服务器上新增数据、修改数据、删除数据。同时从服务器会同步主服务器的修改。

启动:

./bin/redis-server redis.conf

3主从自动切换配置

redis哨兵(Redis Sentinel)的启动和redis实例的启动没有关系。所以可以在任何机器上启动redis哨兵。Redis Sentinel 是一个分布式系统,可以在整个redis主从架构中运行多个 Sentinel 进程(progress)。建议至少要保证有两个哨兵在运行,要不然物理机宕机后哨兵进程也不存在了,就无法进行主从切换。

复制sentinel配置文件到安装目录下

cp /home/redis-4.0.1/sentinel.conf /usr/local/redis/

修改配置

port 26379  #哨兵端口
sentinel monitor mymaster 10.118.213.218 6380 1  #启动时哨兵监控的主服务器IP和端口
sentinel down-after-milliseconds mymaster 10000  #master或slave多长时间(默认30秒)不能使用后标记为s_down状态
sentinel failover-timeout mymaster 10000   #若sentinel在该配置值内未能完成failover操作(即故障时master/slave自动切换),则认为本次failover失败
sentinel auth-pass mymaster secms123  #设置master和slaves验证密码(这里主从都一致)

配置完成启动哨兵,对主服务器进行监控。

测试:可以kill掉主服务器进程,观察日志会有新的主服务器被选举出来。

启动哨兵:

./bin/redis-sentinel sentinel.conf 

最后为了避免异常这里都将redis服务的保护模式设置为关闭状态

protected-mode no
12-26 03:06