下载Redis

Redis下载链接

解压缩

tar -xzvf redis-5.0.7.tar.gz

编译安装

make和gcc依赖

可通过yum -y install gcc automake autoconf libtool make命令安装make和gcc等。

编译及jemalloc依赖

系统可能缺少或因为发生奇怪的错误而提示缺少jemalloc库,在jemalloc的GitHub地址中下载该库然后替换到/deps/jemalloc/文件夹下。

然后在解压后的redis文件夹下输入make,即可编译。

也可以调用系统自带的C库进行编译:make MALLOC=libc

编译完成后输入make install即可将redis安装

redis可执行文件如下:

有这几个文件即可运行redis。

redis运行及哨兵模式配置

redis运行

redis-server为主程序,可通过执行redis-server redis.conf命令来通过配置文件运行程序。

redis-cli为提供的客户端程序,可通过客户端对服务器进行测试。在使用cli客户端时,可以使用info等命令对服务器状态进行查询,还可以进行get/set测试。

redis-benchmark为测试程序,可对服务器性能进行测试。如redis-benchmark -n 10000 -q

redis-sentinel为哨兵程序,执行redis-sentinel sentinel.conf即可通过配置文件执行哨兵程序。

单机及哨兵模式redis.conf配置

服务器配置

redis数据库主程序可以通过redis.conf配置文件进行设置,配置文件中较为重要的项有下面几项:

  • bind 绑定本机IP地址,只有通过这个本机IP访问的请求才可以连接到数据库(限定自己的网卡入口而不是限定外部IP,比如只接受来自192.168.1.1这个网卡的链接)。默认监听所有IP,可通过添加IP限定监听地址。
  • protected-mode 保护模式,当yes时只能接受bind地址的连接请求或密码连接请求
  • port 数据库访问端口,默认6379
  • daemonize 是否后台运行
  • pidfile 如果以后台模式启动redis,程序会将自己的pid号写入该文件
  • logfile 默认是标准输出输出log,如果是后台模式,则需要指定log地址
  • save redis是储存在内存中的数据库,同时也支持持久化操作,save就是指定储存规则,save 900 1就是表示900秒内有1次数据改动则进行持久化操作,储存到本地文件中。
  • dbfilename 储存到本地的rdb数据文件的名称
  • dir rdb文件储存目录,同时也是aof文件储存目录
  • replicaof 在哨兵模式中,主服务器不开启该项,从服务器开启该项。参数为主服务器ip和端口
  • masterauth 参数为主服务器密码
  • requirepass 主机连接时需要的密码

哨兵配置

sentinel.conf配置文件可以配置哨兵进程。常用参数如下(许多都与redis.conf意义相同):

  • bind及protected-mode 同redis服务器的bind
  • port 哨兵进程所用端口
  • daemonize 是否后台运行
  • pidfile 如果以后台模式启动redis,程序会将自己的pid号写入该文件
  • logfile 默认是标准输出输出log,如果是后台模式,则需要指定log地址
  • dir 工作目录
  • sentinel myid 哨兵ID
  • sentinel monitor 设置主服务器名,主服务器IP和端口,以及投票哨兵数
  • sentinel down-after-milliseconds 多少毫秒没有接到主服务器的反馈则认为是down了
  • sentinel failover-timeout 客观下线后执行failover的超时时间,超时则认为失败
  • sentinel auth-pass 参数为主服务器名和密码

单机模拟哨兵模式脚本

需提前进行6个文件的配置,错开redis主从服务器和哨兵服务器端口,设置好主服务器地址、端口、密码和工作目录等项。然后将6个程序放到同一目录下,形成

master,slave1,slave2,sentinel1,sentinel2,sentinel3的并列的文件夹结构。

echo "启动主服务器"
gnome-terminal -t "master" -x bash -c "./redis-master/redis-server ./redis-master/redis.conf;exec bash;"
echo "启动从服务器"
gnome-terminal -t "slave1" -x bash -c "./redis-slave1/redis-server ./redis-slave1/redis.conf;exec bash;"
echo "启动从服务器"
gnome-terminal -t "slave2" -x bash -c "./redis-slave2/redis-server ./redis-slave2/redis.conf;exec bash;" echo "启动哨兵服务器"
gnome-terminal -t "sentinel1" -x bash -c "./redis-sentinel1/redis-sentinel ./redis-sentinel1/sentinel.conf;exec bash;"
echo "启动哨兵服务器"
gnome-terminal -t "sentinel2" -x bash -c "./redis-sentinel2/redis-sentinel ./redis-sentinel2/sentinel.conf;exec bash;"
echo "启动哨兵服务器"
gnome-terminal -t "sentinel3" -x bash -c "./redis-sentinel3/redis-sentinel ./redis-sentinel3/sentinel.conf;exec bash;"

哨兵模式介绍

哨兵模式中,主服务器为可正常读写访问服务器,从服务器从主服务器异步备份数据,哨兵监控主从服务器状态。

当主服务器下线时,其监视的哨兵会触发主观下线,然后触发哨兵投票,当半数以上哨兵投票认为服务器下线时,会触发客观下线,进行服务器切换,投票自动切换到从服务器提供数据库服务。

CentOS8 下 Redis5.0.7 哨兵Sentinel 模式配置指南的更多相关文章

  1. Redis哨兵(sentinel)模式搭建

    一.Sentinel介绍 之前骚了一波Redis的简介及应用场景,今天试了下他的哨兵模式: Sentinel是Redis的高可用性(HA)解决方案,由一个或多个Sentinel实例组成的Sentine ...

  2. Redis详解(九)------ 哨兵(Sentinel)模式详解

    在上一篇博客----Redis详解(八)------ 主从复制,我们简单介绍了Redis的主从架构,但是这种主从架构存在一个问题,当主服务器宕机,从服务器不能够自动切换成主服务器,为了解决这个问题,我 ...

  3. EXTJS4.0 grid 可编辑模式 配置

    首先配置这个参数 plugins:[//插件 Ext.create("Ext.grid.plugin.CellEditing",{ clicksToEdit:1//单元格 点一下就 ...

  4. linux下安装Apache(https) 服务器证书安装配置指南

    一.  安装准备 1.    安装Openssl 要使Apache支持SSL,需要首先安装Openssl支持.推荐下载安装openssl-0.9.8k.tar.gz   下载Openssl:http: ...

  5. CentOS7下编译安装redis-5.0.9

    CentOS7下编译安装redis-5.0.9 本文地址http://yangjianyong.cn/?p=171转载无需经过作者本人授权 下载redis #code start wget https ...

  6. redis环境搭建及一主二从三哨兵模式配置

    一.单机redis环境搭建 1.安装: OS:linux redhat6.5 下载redis 官网下载链接:https://redis.io/download 把安装包上传到服务器,进行解压 [roo ...

  7. Redis 哨兵模式配置

    搭建步骤 第一步: 在 redis.conf 配置文件目录下拷贝三份 sentinel.conf 文件 [root@node-01 redis-5.0.9]# cp sentinel.conf sen ...

  8. Redis5源码解析-Sentinel

    简单的概念就不解释.基于Redis5.0.5 从Sentinel主函数触发 在sentinel.c文件的最后面可以发现sentinelTimer函数,这个就是Sentinel的主函数,sentinel ...

  9. Redis一主二从Sentinel监控配置

    本文基于Redis单实例安装安装.https://gper.club/articles/7e7e7f7ff7g5egc4g6b 开启哨兵模式,至少需要3个Sentinel实例(奇数个,否则无法选举Le ...

随机推荐

  1. python---剪贴板

    import sys from PyQt5.QtWidgets import QApplication, QWidget, QTextEdit, QTextBrowser, QPushButton, ...

  2. 【NOIP2016提高A组集训第4场11.1】平衡的子集

    题目 夏令营有N个人,每个人的力气为M(i).请大家从这N个人中选出若干人,如果这些人可以分成两组且两组力气之和完全相等,则称为一个合法的选法,问有多少种合法的选法? 分析 如果暴力枚举每个人被分到哪 ...

  3. chrome浏览器调试js,结果Sources里面找不到js文件解决办法

        页面出现问题,就debug,这是前端开发工程师最常见的做法,但是有时候,我们打开开发者工具,在sources查找js文件,却发现怎么也找不到,无法设置断点.但是文件在network选项卡里确实 ...

  4. docker跨主机通信-overlay

    使用consul 1,让两个网络环境下的容器互通,那么必然涉及到网络信息的同步,所以需要先配置一下consul. 直接运行下面命令.启动consul. docker run -d -p 8500:85 ...

  5. CDOJ 1070 秋实大哥打游戏 带权并查集

    链接 F - 秋实大哥打游戏 Time Limit:1000MS     Memory Limit:65535KB     64bit IO Format:%lld & %llu Submit ...

  6. luogu P1352 没有上司的舞会 x

    P1352 没有上司的舞会 题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.现在有个周年庆宴会,宴会每邀请来一个职员 ...

  7. MySQL_DML操作

    DML(Data Manipulation Laguage)指对数据库数据的增(Create)删(Delete)改(Update)操作 1.增加操作 (1)先创建一个表,如图所示: 语法:Insert ...

  8. vue之Object.defineProperty()

    了解Object.defineProerty()方法 关于Object.defineProperty()方法的解释,理解Object.defineProperty的作用 这篇文章做了很详细的概述 关于 ...

  9. linux grep 正则

    grep : 显示匹配行 -v: 反显示 -e 使用扩展正则表达式 黑色字体表明是原生正则表达式 红色字体表明是扩张正则表达式 1.匹配操作符 \: 转义字符串(正则使用扩展字符操作  没有使用-e ...

  10. ACM ICPC 2011-2012 Northeastern European Regional Contest(NEERC)K Kingdom Roadmap

    K: 给你n个点以及n-1的条边, 问你最少要加多少条边,使得每两个点割去一条联通的边,还可以使的这两个点连通. 有个一个结论,最少添加的边数为(叶子节点数+1)/ 2. 我们可以只考虑叶子节点数应该 ...