原文:https://www.sunjianhua.cn/archives/centos-redis.html
下载地址: http://download.redis.io/releases/
官方文档: https://redis.io/documentation
一、Redis单机版安装
$ wget http://download.redis.io/releases/redis-4.0.11.tar.gz
$ tar xzf redis-4.0.11.tar.gz
$ cd redis-4.0.11 $ make
二、Redis Sentine主从复制
方案: 1 master,2 slave,3 sentinel
2.1配置master
a.将安装好的单机版,移动到/usr/local/ 下
$ mv redis-4.0.11 /usr/local/redis
b.编辑master配置文件,主要修改以下内容
$ vi /usr/local/redis/redis.conf bind 192.168.20.250 # dir "/usr/local/redis/" pidfile /var/run/redis_6379.pid logfile "/usr/local/redis/redis.log" databases 51 masterauth redis1234 requirepass redis1234 c.启动master服务 $ /usr/local/redis/src/redis-server /usr/local/redis/redis.conf & d.查看日志 $ tail -f /usr/local/redis/redis.log
2.2配置两个slave
a. 创建目录
$ mkdir /usr/local/redis_slave1 /usr/local/redis_slave2
b.复制server,cli,conf等文件
$ cp /usr/local/redis/src/redis-server /usr/local/redis_slave1 $ cp /usr/local/redis/src/redis-server /usr/local/redis_slave2 $ cp /usr/local/redis/src/redis-cli /usr/local/redis_slave1 $ cp /usr/local/redis/src/redis-cli /usr/local/redis_slave2 $ cp /usr/local/redis/redis.conf /usr/local/redis_slave1 $ cp /usr/local/redis/redis.conf /usr/local/redis_slave2 c.编辑slave配置文件,主要修改以下内容 $ vi /usr/local/redis_slave1/redis.conf port 6380 bind 127.0.0.1 daemonize no pidfile "/var/run/redis_6380.pid" logfile "/usr/local/redis_slave1/redis_slave1.log" databases 51 dir "/usr/local/redis_slave1" masterauth "redis1234" requirepass "redis1234" slaveof 127.0.0.1 6379 $ vi /usr/local/redis_slave2/redis.conf port 6381 bind 127.0.0.1 daemonize no pidfile "/var/run/redis_6381.pid" logfile "/usr/local/redis_slave2/redis_slave2.log" databases 51 dir "/usr/local/redis_slave2" masterauth "redis1234" requirepass "redis1234" slaveof 127.0.0.1 6379 d.启动两个slave $ /usr/local/redis_slave1/redis-server /usr/local/redis_slave1/redis.conf & $ /usr/local/redis_slave2/redis-server /usr/local/redis_slave2/redis.conf & e.查看两个slave日志 $ tail -f /usr/local/redis_slave1/redis_slave1.log $ tail -f /usr/local/redis_slave2/redis_slave2.log
2.3配置三个sentinel
a.创建三个sentinel目录
$ mkdir /usr/local/redis_sentinel1 /usr/local/redis_sentinel2 /usr/local/redis_sentinel3 b.拷贝sentinel,conf等文件 $ cp /usr/local/redis/src/redis-sentinel /usr/local/redis_sentinel1 $ cp /usr/local/redis/src/redis-sentinel /usr/local/redis_sentinel2 $ cp /usr/local/redis/src/redis-sentinel /usr/local/redis_sentinel3 $ cp /usr/local/redis/sentinel.conf /usr/local/redis_sentinel1 $ cp /usr/local/redis/sentinel.conf /usr/local/redis_sentinel2 $ cp /usr/local/redis/sentinel.conf /usr/local/redis_sentinel3 c.编辑sentinel配置文件,主要一下配置 $ vi /usr/local/redis_sentinel1/sentinel.conf port 26379 protected-mode no dir "/usr/local/redis_sentinel1" logfile "/usr/local/redis_sentinel1/redis_sentinel1.log" sentinel auth-pass mymaster redis sentinel monitor mymaster 127.0.0.1 6379 sentinel down-after-milliseconds mymaster 5000 sentinel parallel-syncs mymaster 1 sentinel failover-timeout mymaster 180000 $ vi /usr/local/redis_sentinel2/sentinel.conf port 26380 protected-mode no dir "/usr/local/redis_sentinel2" logfile "/usr/local/redis_sentinel2/redis_sentinel2.log" sentinel auth-pass mymaster redis1234 sentinel monitor mymaster 127.0.0.1 6379 sentinel down-after-milliseconds mymaster 5000 sentinel parallel-syncs mymaster 1 sentinel failover-timeout mymaster 180000 $ vi /usr/local/redis_sentinel3/sentinel.conf port 26381 protected-mode no dir "/usr/local/redis_sentinel3" logfile "/usr/local/redis_sentinel3/redis_sentinel3.log" sentinel auth-pass mymaster redis1234 sentinel monitor mymaster 127.0.0.1 6379 sentinel down-after-milliseconds mymaster 5000 sentinel parallel-syncs mymaster 1 sentinel failover-timeout mymaster 180000
2.4测试master和slave
a.启动master和2个slave服务!
查看上述启动方法
b.用master或者slave中的任意cli连接master节点进行操作
$ /usr/local/redis_slave1/redis-cli -p 6379
$ auth redis1234 $ select 2 $ set name sunjianhua $ info Replication
c.连接slave节点查询数据是否存在
$ /usr/local/redis_slave1/redis-cli -p 6381
$ auth redis1234 $ select 2 $ select name
2.5测试sentinel
a.先启动主从,后启动sentinel服务
主从启动看上面
$ /usr/local/redis_sentinel1/redis-sentinel /usr/local/redis_sentinel1/sentinel.conf &
$ /usr/local/redis_sentinel2/redis-sentinel /usr/local/redis_sentinel2/sentinel.conf & $ /usr/local/redis_sentinel3/redis-sentinel /usr/local/redis_sentinel3/sentinel.conf & b.查看sentinel日志 $ tail -f /usr/local/redis_sentinel1/redis-sentinel1.log
c.关闭master,查看sentinel控制台
d.连接之前的slave服务,查看info replication,两个slave 节点之一变为了master