简介

Redis是一个使用ANSI C编写的开源、支持网络、基于内存、可选持久性键值对存储数据库。从2015年6月开始,Redis的开发由Redis Labs赞助,而2013年5月至2015年6月期间,其开发由Pivotal赞助。[1]在2013年5月之前,其开发由VMware赞助。[2][3]根据月度排行网站DB-Engines.com的数据显示,Redis是最流行的键值对存储数据库。[4]

前言

本篇主要介绍Redis的集群部署,采用三台机器,一主两从,三台均为哨兵。

192.168.10.6 Redis主, Redis-Sentinel

192.168.10.7 Redis从, Redis-Sentinel

192.168.10.8 Redis从, Redis-Sentinel

Redis-master(192.168.10.6上的配置)

#下载redis源码包

mkdir /data/soft/ -pv

cd /data/soft

wget http://download.redis.io/releases/redis-3.2.3.tar.gz

tar xf redis-3.2.3.tar.gz -C /usr/local/

#编译安装

cd /usr/local/

ln -sv redis-3.2.3/ redis

cd redis

yum install gcc tcl -y #安装依赖关系

cd deps/

make lua hiredis linenoise

cd ..

#make distclean all #(不用执行)

make MALLOC=libc

make test

make install

cp redis.conf redis.conf.bak

#配置文件

  1. cat > /usr/local/redis/redis.conf << "EOF"
  2.  
  3. bind 0.0.0.0
  4.  
  5. protected-mode no
  6.  
  7. port
  8.  
  9. tcp-backlog
  10.  
  11. timeout
  12.  
  13. tcp-keepalive
  14.  
  15. daemonize yes
  16.  
  17. supervised no
  18.  
  19. pidfile "/var/run/redis_6379.pid"
  20.  
  21. loglevel notice
  22.  
  23. logfile "/usr/local/redis/redis.log"
  24.  
  25. databases
  26.  
  27. save
  28.  
  29. save
  30.  
  31. save
  32.  
  33. stop-writes-on-bgsave-error yes
  34.  
  35. rdbcompression yes
  36.  
  37. rdbchecksum yes
  38.  
  39. dbfilename "dump.rdb"
  40.  
  41. dir "/usr/local/redis-3.2.3"
  42.  
  43. masterauth ""
  44.  
  45. slave-serve-stale-data yes
  46.  
  47. slave-read-only yes
  48.  
  49. repl-diskless-sync no
  50.  
  51. repl-diskless-sync-delay
  52.  
  53. repl-disable-tcp-nodelay no
  54.  
  55. slave-priority
  56.  
  57. requirepass ""
  58.  
  59. appendonly no
  60.  
  61. appendfilename "appendonly.aof"
  62.  
  63. appendfsync everysec
  64.  
  65. no-appendfsync-on-rewrite no
  66.  
  67. auto-aof-rewrite-percentage
  68.  
  69. auto-aof-rewrite-min-size 64mb
  70.  
  71. aof-load-truncated yes
  72.  
  73. lua-time-limit
  74.  
  75. slowlog-log-slower-than
  76.  
  77. slowlog-max-len
  78.  
  79. latency-monitor-threshold
  80.  
  81. notify-keyspace-events ""
  82.  
  83. hash-max-ziplist-entries
  84.  
  85. hash-max-ziplist-value
  86.  
  87. list-max-ziplist-size -
  88.  
  89. list-compress-depth
  90.  
  91. set-max-intset-entries
  92.  
  93. zset-max-ziplist-entries
  94.  
  95. zset-max-ziplist-value
  96.  
  97. hll-sparse-max-bytes
  98.  
  99. activerehashing yes
  100.  
  101. client-output-buffer-limit normal
  102.  
  103. client-output-buffer-limit slave 256mb 64mb
  104.  
  105. client-output-buffer-limit pubsub 32mb 8mb
  106.  
  107. hz
  108.  
  109. aof-rewrite-incremental-fsync yes
  110.  
  111. EOF

redis.conf

#开机启动设置

echo "/usr/local/bin/redis-server /usr/local/redis/redis.conf" >>/etc/rc.d/rc.local

chmod +x /etc/rc.d/rc.local #必须要加执行权限, 否则不会执行

#启动服务

redis-server /usr/local/redis/redis.conf

#查看状态

redis-cli -a 123456 info replication

Redis-slave(192.168.10.7,192.168.10.8上的配置)

#下载redis源码包

mkdir /data/soft/ -pv

cd /data/soft

wget http://download.redis.io/releases/redis-3.2.3.tar.gz

tar xf redis-3.2.3.tar.gz -C /usr/local/

#编译安装

cd /usr/local/

ln -sv redis-3.2.3/ redis

cd redis

yum install gcc tcl -y #安装依赖关系

cd deps/

make lua hiredis linenoise

cd ..

#make distclean all #(不用执行)

make MALLOC=libc

make test

make install

#配置文件

  1. cat > /usr/local/redis/redis.conf << "EOF"
  2.  
  3. bind 0.0.0.0
  4.  
  5. protected-mode no
  6.  
  7. port
  8.  
  9. tcp-backlog
  10.  
  11. timeout
  12.  
  13. tcp-keepalive
  14.  
  15. daemonize yes
  16.  
  17. supervised no
  18.  
  19. pidfile "/var/run/redis_6379.pid"
  20.  
  21. loglevel notice
  22.  
  23. logfile "/usr/local/redis/redis.log"
  24.  
  25. databases
  26.  
  27. save
  28.  
  29. save
  30.  
  31. save
  32.  
  33. stop-writes-on-bgsave-error yes
  34.  
  35. rdbcompression yes
  36.  
  37. rdbchecksum yes
  38.  
  39. dbfilename "dump.rdb"
  40.  
  41. dir "/usr/local/redis-3.2.3"
  42.  
  43. masterauth ""
  44.  
  45. slave-serve-stale-data yes
  46.  
  47. slave-read-only yes
  48.  
  49. repl-diskless-sync no
  50.  
  51. repl-diskless-sync-delay
  52.  
  53. repl-disable-tcp-nodelay no
  54.  
  55. slave-priority
  56.  
  57. requirepass ""
  58.  
  59. appendonly no
  60.  
  61. appendfilename "appendonly.aof"
  62.  
  63. appendfsync everysec
  64.  
  65. no-appendfsync-on-rewrite no
  66.  
  67. auto-aof-rewrite-percentage
  68.  
  69. auto-aof-rewrite-min-size 64mb
  70.  
  71. aof-load-truncated yes
  72.  
  73. lua-time-limit
  74.  
  75. slowlog-log-slower-than
  76.  
  77. slowlog-max-len
  78.  
  79. latency-monitor-threshold
  80.  
  81. notify-keyspace-events ""
  82.  
  83. hash-max-ziplist-entries
  84.  
  85. hash-max-ziplist-value
  86.  
  87. list-max-ziplist-size -
  88.  
  89. list-compress-depth
  90.  
  91. set-max-intset-entries
  92.  
  93. zset-max-ziplist-entries
  94.  
  95. zset-max-ziplist-value
  96.  
  97. hll-sparse-max-bytes
  98.  
  99. activerehashing yes
  100.  
  101. client-output-buffer-limit normal
  102.  
  103. client-output-buffer-limit slave 256mb 64mb
  104.  
  105. client-output-buffer-limit pubsub 32mb 8mb
  106.  
  107. hz
  108.  
  109. aof-rewrite-incremental-fsync yes
  110.  
  111. slaveof 192.168.10.6
  112.  
  113. EOF

redis.conf

#开机启动设置

echo "/usr/local/bin/redis-server /usr/local/redis/redis.conf" >>/etc/rc.d/rc.local

chmod +x /etc/rc.d/rc.local #必须要加执行权限, 否则不会执行

#启动服务

redis-server /usr/local/redis/redis.conf

#查看状态

redis-cli -a 123456 info replication

#三sentinel配置(192.168.10.6,192.168.10.7,192.168.10.8上配置)

cat > /usr/local/redis/sentinel.conf << "EOF"

daemonize yes

port 27000

sentinel monitor redis-master 192.168.10.6 6379 2

sentinel down-after-milliseconds redis-master 5000

protected-mode no

sentinel failover-timeout redis-master 900000

sentinel parallel-syncs redis-master 2

sentinel auth-pass redis-master 123456

logfile "/usr/local/redis/sentinel.log"

EOF

#开机启动设置

echo "/usr/local/bin/redis-sentinel /usr/local/redis/sentinel.conf" >>/etc/rc.d/rc.local

chmod +x /etc/rc.d/rc.local #必须要加执行权限, 否则不会执行

#启动服务

redis-sentinel /usr/local/redis/sentinel.conf

#查看状态

redis-cli -a 123456 info replication

redis-cli -p 27000 -a 123456 info sentinel

#单sentinel配置, 注:在一主一从的环境中,部署一个sentinel节点的环境使用

cat > /usr/local/redis/sentinel.conf << "EOF"

daemonize yes

port 27000

sentinel monitor redis-master 192.168.10.6 6379 1

protected-mode no

sentinel down-after-milliseconds redis-master 5000

sentinel failover-timeout redis-master 60000

sentinel auth-pass redis-master 123456

logfile "/usr/local/redis/sentinel.log"

EOF

#转移测试

redis-cli -a 123456 shutdown (主服务器上停掉redis服务, 或pkill redis-server)

redis-cli -p 27000 -a 123456 info sentinel(查看三台redis状态转换)

Redis 3.2.3: 集群3哨兵模式的更多相关文章

  1. redis 学习笔记2(集群之哨兵模式的使用)

    redis3.0之前已经有了哨兵模式,3.0之后有了cluster(分片集群),官方不推荐使用!!主要原因是分片后单节点故障后需要实现手动分槽... 集群较为成熟的解决方案codis,公司使用的是哨兵 ...

  2. (六) Docker 部署 Redis 高可用集群 (sentinel 哨兵模式)

    参考并感谢 官方文档 https://hub.docker.com/_/redis GitHub https://github.com/antirez/redis happyJared https:/ ...

  3. redis集群之哨兵模式【原】

    redis集群之哨兵(sentinel)模式 哨兵模式理想状态 需要>=3个redis服务,>=3个redis哨兵,每个redis服务搭配一个哨兵. 本例以3个redis服务为例: 一开始 ...

  4. Redis主从集群及哨兵模式

    本次实验环境准备用一台服务器模拟3台redis服务器,1主2从 主从集群搭建 第一步:安装Redis 安装Redis,参考前面安装Redis文章,保证单机使用没有问题. 第二步:配置服务器文件 定位到 ...

  5. redis集群sentinel哨兵模式的搭建与实际应用

    参考资料:https://blog.csdn.net/men_wen/article/details/72724406 之前环境使用的keepalived+redis vip集群模式,现在我们服务切换 ...

  6. Redis集群--Redis集群之哨兵模式

    echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!!! 搭建R ...

  7. Docker:docker搭建redis一主多从集群(配置哨兵模式)

    角色 实例IP 实例端口 宿主机IP 宿主机端口 master 172.19.0.2 6382 192.168.1.200 6382 slave01 172.19.0.3 6383 192.168.1 ...

  8. docker 搭建 redis 集群(哨兵模式)

    文件结构 1. redis-sentinel 1-1. docker-compose.yml 1-2. sentinel 1-2-1 docker-compose.yml 1-2-2 sentinel ...

  9. redis主从、集群、哨兵

    redis的主从.集群.哨兵 参考: https://blog.csdn.net/robertohuang/article/details/70741575 https://blog.csdn.net ...

随机推荐

  1. Django常用字段及参数、事务、数据库查询优化

    常用字段 注意: Django中没有设置对应char类型的字段,但可以支持自己定义. 自定义对应于数据库的char类型字段: from django.db.models import Field cl ...

  2. JavaScript中函数式编程中文翻译

    JavaScript 中的函数式编程 原著由 Dan Mantyla 编写 近几年来,随着 Haskell.Scala.Clojure 等学院派原生支持函数式编程的偏门语言越来越受到关注,同时主流的 ...

  3. 【转】[IT综合面试]牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结

    感谢IT面试群 S-北京-陈磊 的整理分享.   基础篇:操作系统.计算机网络.设计模式         提高篇:WIN32.MFC与Linux 算法篇:算法与数据结构           一:操作系 ...

  4. 【转】Hibernate面试问题集锦: 概述

    ImportNew注: 本文是ImportNew编译整理的Java面试题系列文章之一.你可以从这里查看全部的Java面试系列. Q.怎么配置Hibernate? A.Configuration类使用配 ...

  5. 如何用visual studio code更好的编写python

    目录 1.先决条件 2.Visual Studio Code扩展安装Python 3.Visual Studio Code扩展安装Python for VSCode 4.Visual Studio C ...

  6. mac-air 搭建vue开发环境

    周末没事干,自己搭建个vue环境. 我用的是mac-air,自带brew很好用. 要安装vue 得先安装node.js的包管理工具npm. brew install npm 等待安装完成,查看node ...

  7. VMware Workstation CentOS7 Linux 学习之路(1)--系统安装

      前言 很早就想学习Linux了,出去面试很多家公司都问会不会Linux,都很尴尬,一直没学过Linux,在网上也看过很多资料,也安装了VM,自己摸索着学习Linux,之前看网上的一些命令一顿操作, ...

  8. 自建CDN Xnign产品指标

    Xnign-X1 Xnign-X1 性能参数 参考值 L7 HTTP RPS (128并发请求) 250W QPS L7 HTTP CPS (128并发请求) 110W QPS L7 HTTP RPS ...

  9. 内部类、final与垃圾回收,面试时你一说,面试官就知道

    内部类并不常用,而且使用起来有一定的定式,比如在下面的InnterDemoByTrhead.java里,我们通过内部类的形式创建线程. 1 public class InnerDemoByThread ...

  10. mysql数据库的备份与数据恢复

    一.定时备份数据库  前段时间工作中搭建了HttpRunnerManager的接口自动化测试平台,由于平台中没有提供用例下载的功能及权限管理功能,自己也不会写前端,于是就想了办法,那就是备份数据库,如 ...