选择你想要存放的目录,然后 下载 解压
wget http://download.redis.io/releases/redis-4.0.6.tar.gz
tar -zxf redis-4.0.6.tar.gz
解压完成后进入解压好的目录
然后执行 make 对解压的Redis文件进行编译
执行完成后进入src目录
执行
make install PREFIX=/usr/mpsp/redis/redis-4.0.6
PREFIX 后面是安装路径
执行成功后就会多出一个bin的目录
这样 我们的redis 就已经安装好了
由于我比较穷,只有一台服务器,所以,就只在一台服务器上面同时部署了
首先,复制三个出来,然后原本的就先放在哪里,留作备用
cp -r redis-4.0.6 redis-4.0.6-master
cp -r redis-4.0.6 redis-4.0.6-Slave-1
cp -r redis-4.0.6 redis-4.0.6-Slave-2
然后是配置
主redis的配置
redis.conf
#后台启动
daemonize yes
pidfile "/usr/mpsp/data/redis/6379/redisRun/redis_6379.pid"
port 6379
timeout 0
tcp-keepalive 0
loglevel notice
logfile "/usr/mpsp/data/redis/6379/redislog/redis.log"
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename "dump.rdb"
dir "/usr/mpsp/data/redis/6379/redisdb"
#如果做故障切换,不论主从节点都要填写密码且要保持一致
masterauth "123456"
slave-serve-stale-data yes
slave-read-only yes
repl-disable-tcp-nodelay no
slave-priority 98
#当前redis密码
requirepass "123456"
appendonly yes
# appendfsync always
appendfsync everysec
# appendfsync no
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
# Generated by CONFIG REWRITE
然后是从redis的配置
daemonize yes
pidfile "/use/mpsp/data/redis/7000/redisRun/redis_7000.pid"
port 7000
timeout 0
tcp-keepalive 0
loglevel notice
logfile "/use/mpsp/data/redis/7000/redislog/redis.log"
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename "dump.rdb"
dir "/use/mpsp/data/redis/7000/redisdb"
#主节点密码
masterauth "123456"
slave-serve-stale-data yes
slave-read-only yes
repl-disable-tcp-nodelay no
slave-priority 98
requirepass "123456"
appendonly yes
# appendfsync always
appendfsync everysec
# appendfsync no
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
# Generated by CONFIG REWRITE
#配置主节点信息
slaveof 10.10.56.161 6379
Slave-redis的配置我们需要注意修改的几个点:端口、文件路径、主节点信息,这三点必须要注意修改
同时, pidfile logfile dir 这三个配置的文件夹,必须启动前提前创建!!!
接下来是哨兵的配置
sentinel.conf
port 26379
#1表示在sentinel集群中只要有两个节点检测到redis主节点出故障就进行切换,单sentinel节点无效(自己测试发现的)
#如果3s内mymaster无响应,则认为mymaster宕机了
#如果10秒后,mysater仍没活过来,则启动failover
sentinel monitor mymaster 10.10.56.161 6379 1
sentinel down-after-milliseconds mymaster 3000
sentinel failover-timeout mymaster 10000
daemonize yes
#指定工作目录
dir "/use/mpsp/data/redis/26379/sentinel-work"
protected-mode no
logfile "/use/mpsp/data/26379/sentinellog/sentinel.log"
#redis主节点密码
sentinel auth-pass mymaster 123456
# Generated by CONFIG REWRITE
这里需要注意的就是 端口号 文件夹路径,不能重复,且文件夹路径需要启动前提前创建
配置修改完毕,接下来就是启动了
进入我们redis的安装路径
执行
./bin/redis-server redis.conf
这就是启动我们的redis了,由于我们设置的后台启动,所以我们通过查看日志来判断是否启动成功
日志路径是我们配置文件中的 logfile 文件夹
三个redis依次启动
也可以通过 ps -ef|grep redis 判断是否启动
哨兵的启动通过执行
./bin/redis-sentinel sentinel.conf
日志路径也是 logfile
也可以通过 ps -ef|grep redis 判断是否启动
通过查看哨兵的日志我们可以看到主redis的情况
同时我们访问主redis的哨兵可以看到从redis的节点情况
这样 我们的主从+哨兵就已经搭建好了
虽然已经搭建好了 但是毕竟我们要试一下是不哨兵已经起到作用了呢
执行
./bin/redis-cli
然后验证密码
auth 123456
最后执行
shutdown
通过ps,也可以看到少了一个redis
通过查看哨兵的日志,我们也可以看到主服务器也已经变更了