Linux安装redis并搭建主从,哨兵

下载redis

选择你想要存放的目录,然后 下载 解压

  1. wget http://download.redis.io/releases/redis-4.0.6.tar.gz
  2. tar -zxf redis-4.0.6.tar.gz

解压完成后进入解压好的目录

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xqeTk1MDkxNA_size_16_color_FFFFFF_t_70

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

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xqeTk1MDkxNA_size_16_color_FFFFFF_t_70 1

执行完成后进入src目录

执行

make install PREFIX=/usr/mpsp/redis/redis-4.0.6

PREFIX 后面是安装路径

执行成功后就会多出一个bin的目录

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xqeTk1MDkxNA_size_16_color_FFFFFF_t_70 2

这样 我们的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

  1. #后台启动
  2. daemonize yes
  3. pidfile "/usr/mpsp/data/redis/6379/redisRun/redis_6379.pid"
  4. port 6379
  5. timeout 0
  6. tcp-keepalive 0
  7. loglevel notice
  8. logfile "/usr/mpsp/data/redis/6379/redislog/redis.log"
  9. databases 16
  10. save 900 1
  11. save 300 10
  12. save 60 10000
  13. stop-writes-on-bgsave-error yes
  14. rdbcompression yes
  15. rdbchecksum yes
  16. dbfilename "dump.rdb"
  17. dir "/usr/mpsp/data/redis/6379/redisdb"
  18. #如果做故障切换,不论主从节点都要填写密码且要保持一致
  19. masterauth "123456"
  20. slave-serve-stale-data yes
  21. slave-read-only yes
  22. repl-disable-tcp-nodelay no
  23. slave-priority 98
  24. #当前redis密码
  25. requirepass "123456"
  26. appendonly yes
  27. # appendfsync always
  28. appendfsync everysec
  29. # appendfsync no
  30. no-appendfsync-on-rewrite no
  31. auto-aof-rewrite-percentage 100
  32. auto-aof-rewrite-min-size 64mb
  33. lua-time-limit 5000
  34. slowlog-log-slower-than 10000
  35. slowlog-max-len 128
  36. notify-keyspace-events ""
  37. hash-max-ziplist-entries 512
  38. hash-max-ziplist-value 64
  39. list-max-ziplist-entries 512
  40. list-max-ziplist-value 64
  41. set-max-intset-entries 512
  42. zset-max-ziplist-entries 128
  43. zset-max-ziplist-value 64
  44. activerehashing yes
  45. client-output-buffer-limit normal 0 0 0
  46. client-output-buffer-limit slave 256mb 64mb 60
  47. client-output-buffer-limit pubsub 32mb 8mb 60
  48. hz 10
  49. aof-rewrite-incremental-fsync yes
  50. # Generated by CONFIG REWRITE

然后是从redis的配置

  1. daemonize yes
  2. pidfile "/use/mpsp/data/redis/7000/redisRun/redis_7000.pid"
  3. port 7000
  4. timeout 0
  5. tcp-keepalive 0
  6. loglevel notice
  7. logfile "/use/mpsp/data/redis/7000/redislog/redis.log"
  8. databases 16
  9. save 900 1
  10. save 300 10
  11. save 60 10000
  12. stop-writes-on-bgsave-error yes
  13. rdbcompression yes
  14. rdbchecksum yes
  15. dbfilename "dump.rdb"
  16. dir "/use/mpsp/data/redis/7000/redisdb"
  17. #主节点密码
  18. masterauth "123456"
  19. slave-serve-stale-data yes
  20. slave-read-only yes
  21. repl-disable-tcp-nodelay no
  22. slave-priority 98
  23. requirepass "123456"
  24. appendonly yes
  25. # appendfsync always
  26. appendfsync everysec
  27. # appendfsync no
  28. no-appendfsync-on-rewrite no
  29. auto-aof-rewrite-percentage 100
  30. auto-aof-rewrite-min-size 64mb
  31. lua-time-limit 5000
  32. slowlog-log-slower-than 10000
  33. slowlog-max-len 128
  34. notify-keyspace-events ""
  35. hash-max-ziplist-entries 512
  36. hash-max-ziplist-value 64
  37. list-max-ziplist-entries 512
  38. list-max-ziplist-value 64
  39. set-max-intset-entries 512
  40. zset-max-ziplist-entries 128
  41. zset-max-ziplist-value 64
  42. activerehashing yes
  43. client-output-buffer-limit normal 0 0 0
  44. client-output-buffer-limit slave 256mb 64mb 60
  45. client-output-buffer-limit pubsub 32mb 8mb 60
  46. hz 10
  47. aof-rewrite-incremental-fsync yes
  48. # Generated by CONFIG REWRITE
  49. #配置主节点信息
  50. slaveof 10.10.56.161 6379

Slave-redis的配置我们需要注意修改的几个点:端口、文件路径、主节点信息,这三点必须要注意修改

同时, pidfile logfile dir 这三个配置的文件夹,必须启动前提前创建!!!

接下来是哨兵的配置

sentinel.conf

  1. port 26379
  2. #1表示在sentinel集群中只要有两个节点检测到redis主节点出故障就进行切换,单sentinel节点无效(自己测试发现的)
  3. #如果3s内mymaster无响应,则认为mymaster宕机了
  4. #如果10秒后,mysater仍没活过来,则启动failover
  5. sentinel monitor mymaster 10.10.56.161 6379 1
  6. sentinel down-after-milliseconds mymaster 3000
  7. sentinel failover-timeout mymaster 10000
  8. daemonize yes
  9. #指定工作目录
  10. dir "/use/mpsp/data/redis/26379/sentinel-work"
  11. protected-mode no
  12. logfile "/use/mpsp/data/26379/sentinellog/sentinel.log"
  13. #redis主节点密码
  14. sentinel auth-pass mymaster 123456
  15. # Generated by CONFIG REWRITE

这里需要注意的就是 端口号 文件夹路径,不能重复,且文件夹路径需要启动前提前创建

配置修改完毕,接下来就是启动了

进入我们redis的安装路径

执行

./bin/redis-server redis.conf

20200414232933180.png

这就是启动我们的redis了,由于我们设置的后台启动,所以我们通过查看日志来判断是否启动成功

日志路径是我们配置文件中的 logfile 文件夹

三个redis依次启动

也可以通过 ps -ef|grep redis 判断是否启动

20200414233240796.png

哨兵的启动通过执行

./bin/redis-sentinel sentinel.conf

日志路径也是 logfile

也可以通过 ps -ef|grep redis 判断是否启动

20200414233500323.png

通过查看哨兵的日志我们可以看到主redis的情况

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xqeTk1MDkxNA_size_16_color_FFFFFF_t_70 3

同时我们访问主redis的哨兵可以看到从redis的节点情况

20200414233746164.png

这样 我们的主从+哨兵就已经搭建好了

测试

虽然已经搭建好了 但是毕竟我们要试一下是不哨兵已经起到作用了呢

执行

./bin/redis-cli

然后验证密码

auth 123456

最后执行

shutdown

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xqeTk1MDkxNA_size_16_color_FFFFFF_t_70 4

通过ps,也可以看到少了一个redis

20200414234438910.png

通过查看哨兵的日志,我们也可以看到主服务器也已经变更了

发表评论

表情:
评论列表 (有 0 条评论,80人围观)

还没有评论,来说两句吧...

相关阅读

    相关 redis主从哨兵

    1. 为什么要有哨兵机制     哨兵机制是对Redis系统的运行情况的监控,解决主从复制的缺点的。  原理:当主节点出现故障时,由Redis Sentinel自动完成故障