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