下载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. C语言中time函数和localtime获取系统时间和日期

    可以通过time()函数来获得计算机系统当前的日历时间(Calendar Time),处理日期时间的函数都是以本函数的返回值为基础进行运算. 1. time 函数 返回1970-1-1, 00:00: ...

  2. electron启动出现短暂的白屏

    mainWindow = new BrowserWindow({ height: 600, width: 960, frame: false, minWidth: 710, minHeight: 50 ...

  3. python1--比较三个数值的大小

    num1 = input("num1:")num2 = input("num2:")num3 = input("num3:")num = m ...

  4. vscode匹配括号插件

    给大家推荐一个vscode匹配括号的插件: Bracket Pair Colorizer.超级好用哦

  5. js 创建节点

    //获取对象 console.log(obj)//字符串转对象 var ob = JSON.parse(data); //对象转为字符串 console.log(JSON.stringify(obj) ...

  6. UML——概述

    1. 静态视图(类图)      静态视图不描述与时间相关的系统行为,这种行为在其他视图中描述,因此称之为静态试图.      静态视图用类图来实现,正因为它以类图为中心,因此也称之为类图.     ...

  7. Devexpress MVC Gridview

    1. 根据选中的KeyValue 来获取其他field的value // Gridview settings settings.CustomJSProperties = (s, e) => { ...

  8. luoguP1197 [JSOI2008]星球大战 x

    P1197 [JSOI2008]星球大战 题目描述 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治者整个星系.某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝国的超级武器,并攻下了星系中 ...

  9. BZOJ 1901 洛谷 P2617 ZOJ 2112 Dynamic Rankings

    以下时空限制来自zoj Time limit 10000 ms Memory limit 32768 kB OS Linux Source Online Contest of Christopher' ...

  10. sublime安装完插件后出现的一些问题

    1.安装anaconda后代码前面出现小方框 解决办法:这是由于不符合PEP8代码规范,在空白地方右击,选择anaconda --> autoformat PEP8 Errors ,同时保证导入 ...