2019独角兽企业重金招聘Python工程师标准>>>

1、环境准备 centos 7  创建一个目录

mkdir /usr/local/redis-sentry

上传redis安装到到/usr/local/redis-sentry目录

解压安装包到当前目录

tar -zxvf redis-3.2.8.tar.gz

进入到解压目录进行make

cd ./redis-3.2.8
make

编译完成后进入src目录进行安装

##我这里把redis安装到了redis-sentry目录下
make install  PREFIX=/usr/local/redis-sentry

创建redis启动文件目录

mkdir /usr/local/redis-sentry/etc

现在我们预备四个节点,一个主节点,两个从节点,那么我可以通过端口不同模拟三台机器,具体操作就是配置三个redis.conf文件,分别配置不同的端口,启动四个实例即可达到模拟多节点的效果

接下来我们在/usr/local/redis-sentry/etc目录下面创建四个文件夹 分别为7001,7002,7003

cd /usr/local/redis-sentry/etc
mkdir ./7001 ./7002 ./7003

复制redis.conf分别到./7001 ./7002 ./7003  三个目录

##进入到redis解压目录去复制redis.conf配置文件到三个节点目录下
cd /usr/local/redis-sentry/redis-3.2.8
cp redis.conf /usr/local/redis-sentry/etc/7001/
cp redis.conf /usr/local/redis-sentry/etc/7002/
cp redis.conf /usr/local/redis-sentry/etc/7003/

创建日志和数据存储目录

cd /usr/local/redis-sentry/
mkdir data/
mkdir logs/
mkdir data/7001 data/7002 data/7003
mkdir logs/7001 logs/7002 logs/7003

修改7001节点的配置文件

cd /usr/local/redis-sentry/etc/7001/
vi redis.conf
###具体需要修改的配置
port 7001
####redis一般都在内网运行,所以注释掉#bind 127.0.0.1
# bind 127.0.0.1
关闭保护模式,protected-mode 把yes改为no
protected-mode no
##开启后台守护进程模式启动
daemonize yes
##密码
requirepass 123456
##
masterauth 123456
pidfile /var/run/redis_7001.pid
###指明日志文件名
logfile "/usr/local/redis-sentry/logs/7001/7001.log"
dir /usr/local/redis-sentry/data/7001

修改7002节点的配置文件

cd /usr/local/redis-sentry/etc/7002/
vi redis.conf
###具体需要修改的配置
port 7002
###注释掉bind属性
# bind 127.0.0.1
protected-mode no
##开启后台守护进程模式启动
daemonize yes
##密码
requirepass 123456
##
masterauth 123456
pidfile /var/run/redis_7002.pid
logfile "/usr/local/redis-sentry/logs/7002/7002.log"
dir /usr/local/redis-sentry/data/7002

修改7003节点的配置文件

cd /usr/local/redis-sentry/etc/7003/
vi redis.conf
###具体需要修改的配置
port 7003
###注释掉bind属性
# bind 127.0.0.1
protected-mode no
##开启后台守护进程模式启动
daemonize yes
##密码
requirepass 123456
##
masterauth 123456
pidfile /var/run/redis_7003.pid
logfile "/usr/local/redis-sentry/logs/7003/7003.log"
dir /usr/local/redis-sentry/data/7003

启动redis实例

/usr/local/redis-sentry/bin/redis-server /usr/local/redis-sentry/etc/7001/redis.conf
/usr/local/redis-sentry/bin/redis-server /usr/local/redis-sentry/etc/7002/redis.conf
/usr/local/redis-sentry/bin/redis-server /usr/local/redis-sentry/etc/7003/redis.conf

接下来配置主从和哨兵

上面说了7001为主,那么我现在配置7002,7003的同步数据

在/user/local/redis-sentry/etc/7002/redis.conf  和 /user/local/redis-sentry/etc/7003/redis.conf中配置如下:

vi /usr/local/redis-sentry/etc/7002/redis.conf
##配置如下:
slaveof 192.168.56.100 7001
vi /usr/local/redis-sentry/etc/7003/redis.conf
slaveof 192.168.56.100 7001

链接7001节点使用info replication命令查看发现该节点如预期结果为master节点

7002和7003节点查看为slave

接下来我们需要配置哨兵节点,redis哨兵的启动和redis实例的启动没有关系。所以可以在任何机器上启动redis哨兵。至少要保证有两个哨兵在运行,要不然宕机后哨兵会找不到主节点,所以我分别在7002和7003配置

在7002节点创建哨兵配置文件

cd /usr/local/redis-sentry/etc/7002/
vi sentinel.conf
#sentinel端口
port 27002
#工作路径,注意路径不要和主重复,下面给出创建目录
dir "/usr/local/redis-sentry/sentry/7002/"
# 守护进程模式
daemonize yes
#关闭保护模式
protected-mode no
# 指明日志文件名
logfile "./sentinel.log"
#哨兵监控的master,主从配置一样,这里只用输入redis主节点的ip/port和法定人数。
sentinel monitor mymaster 192.168.56.100 7001 1
# master或slave多长时间(默认30秒)不能使用后标记为s_down状态。
sentinel down-after-milliseconds mymaster 5000
#若sentinel在该配置值内未能完成failover操作(即故障时master/slave自动切换),则认为本次failover失败。
sentinel failover-timeout mymaster 18000
#设置master和slaves验证密码
sentinel auth-pass mymaster 123456
#指定了在执行故障转移时, 最多可以有多少个从服务器同时对新的主服务器进行同步
sentinel parallel-syncs mymaster 1

复制7002节点的哨兵配置文件到7003

cp sentinel.conf ../7003/
##修改哨兵端口
vi /usr/local/redis-sentry/etc/7003/sentinel.conf
##修改prot为
port 27003

创建哨兵工作路径目录

mkdir /usr/local/redis-sentry/sentry
mkdir /usr/local/redis-sentry/sentry/7002/
mkdir /usr/local/redis-sentry/sentry/7003/

启动哨兵

/usr/local/redis-sentry/bin/redis-sentinel /usr/local/redis-sentry/etc/7002/sentinel.conf
/usr/local/redis-sentry/bin/redis-sentinel /usr/local/redis-sentry/etc/7003/sentinel.conf

sentinel参数在运行时可以使用SENTINEL SET命令更改

上面配置中的mymaster为该主从的名字,代码中会使用

通过哨兵查看集群的信息:

##连接哨兵
redis-cli -p 27002
##查看master的状态
sentinel master mymaster
##查看salves的状态
SENTINEL slaves mymaster
##查看哨兵的状态
SENTINEL sentinels mymaster
##获取当前master的地址
SENTINEL get-master-addr-by-name mymaster
##查看哨兵信息
info sentinel

查看哨兵信息如下图

查看redis进行

现在我们kill 掉7001主节点,看是否会重新选举master

7003已经被选为master

转载于:https://my.oschina.net/shxjinchao/blog/2046247

Redis单机搭建主从复制以及哨兵机制相关推荐

  1. Redis源码解析(15) 哨兵机制[2] 信息同步与TILT模式

    Redis源码解析(1) 动态字符串与链表 Redis源码解析(2) 字典与迭代器 Redis源码解析(3) 跳跃表 Redis源码解析(4) 整数集合 Redis源码解析(5) 压缩列表 Redis ...

  2. redis主从复制和哨兵机制

    一.Redis主从复制 主从复制:主节点负责写数据,从节点负责读数据,主节点定期把数据同步到从节点保证数据的一致性 1. 主从复制的相关操作 a,配置主从复制方式一.新增redis6380.conf, ...

  3. Redis单机模式主从模式哨兵模式集群模式搭建

    文章目录 一.Redis下载及安装 1.1.下载 1.2.环境安装 1.3.编译安装 1.4.修改配置 1.5.启动Redis 1.6.验证Redis是否启动 1.7.进入到Redis客户端 1.8. ...

  4. redis哨兵主从不切换_《「面试突击」—Redis篇》-- Redis的主从复制?哨兵机制?...

    Redis如何保证高并发,高可用? 高并发:redis的单机吞吐量可以达到几万不是问题,如果想提高redis的读写能力,可以用redis的主从架构,redis天热支持一主多从的准备模式,单主负责写请求 ...

  5. 【Java从0到架构师】Redis 进阶 - 持久化(RBD、AOF)、高可用(主从复制、哨兵机制、Cluster)

    Redis 原理与实战 持久化 Redis 持久化 - RDB Redis 持久化 - AOF AOF 文件重写机制 Redis 高可用 Redis 主从复制 搭建主从复制环境 全量复制和部分复制 R ...

  6. java redis 主从 哨兵_Redis主从复制与哨兵机制

    Redis主从复制 1.redis的复制功能是支持多个数据库之间的数据同步.一类是主数据库(master)一类是从数据库(slave),主数据库可以进行读写操作,当发生写操作的时候自动将数据同步到从数 ...

  7. Redis主从复制、哨兵机制

    一.主从架构 在Redis中,用户可以通过执行SALVEOF命令或者设置salveof选项,让一个服务器去复制(replicate)另一个服务器,我们称呼被复制的服务器为主服务器(master),而对 ...

  8. redis服务之主从复制、哨兵模式、群集模式

    目录 1 Redis主从复制 1.1 Redis主从复制的概念 1.2 Redis主从复制的作用 1.3 Redis主从复制的流程 1.4 Redis主从复制的搭建 安装Redis(所有主机) 修改M ...

  9. Redis高可用——主从复制、哨兵模式、集群

    文章目录 一.Redis高可用 1.什么是高可用 2.Redis的高可用技术 二.Redis主从复制 1.Redis主从复制的作用 2.主从复制的流程 三.主从复制的搭建 实验准备 1.所有主机安装R ...

最新文章

  1. 设有一数据库,包括四个表:学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)。...
  2. 头条三面:toString()、String.valueOf、(String)强转,有啥区别?
  3. RCP开发小技巧(二)
  4. Atitit 提升效率 界面gui方面的前后端分离与cbb体系建设 规范与推荐标准
  5. HTML5(W3CSchool版).chm
  6. php配合jade使用,前端自动化系列(四)之jade预编译html
  7. MFC工作笔记0011---atoi的用法
  8. 联想笔记本安装xp sp3 GHOST版无法安装声卡问题
  9. 测绘——AutoCAD教育版打印戳去除
  10. 办公软件 -- Office 365免费下载安装
  11. 怎么利用计算机自带功能删除垃圾,win7系统怎么清除电脑里的垃圾
  12. 2021.05.09 美团测开笔试-弹吉他
  13. 兆芯国产电脑如何安装Windows+麒麟kylin双系统
  14. android手机8g内存够用嘛,安卓旗舰机8GB运行内存到底够不够用?有必要上12GB吗?...
  15. U盘无法打开提示格式化解决方案
  16. 【SpringBoot】SpringBoot三层开发
  17. 汉诺塔问题的解决思路及算法
  18. SDUT 4123 喵帕斯之天才算数少女
  19. 程序员升职加薪靠的是优势,教你发现优势运用优势
  20. Pr入门系列之八:添加过渡

热门文章

  1. 【拼爹坑爹不比爹】深入理解css中position属性及z-index属性
  2. linux与s7-300,Siemens SIMATIC S7-300硬编码凭证安全限制绕过漏洞
  3. 大数据架构师工作内容有哪些?
  4. Go语言的异常处理之errors,panic, recover
  5. 示例演示公告通知标题无缝向上滚动,文字段落无缝向上滚动,简单的wangeditor富文本编辑器,简单的音乐播放demo...
  6. iptables小案例
  7. 生产环境mysql主主同步主键冲突处理
  8. 关于富士通 T5220服务器故障处理
  9. 551. 学生出勤记录 I
  10. 采用docker部署3台Redis分布式红锁实例