Redis 主从+哨兵安装与部署

1 前言

  redis集群常见的部署方式有:

  • 采用主从复制 + sentinel(哨兵)监控的方式;
  • 采用redis-cluster集群(去中心化分片集群)的方式

  本文以笔者内部项目为例,采用主从复制+哨兵的方式部署。

2 版本说明

  • 三台服务器(一主两从):192.168.1.60 为主服务器,192.168.1.59 和192.168.1.58 为从服务器
  • 操作系统:CentOS Linux release 7.4.1708 (Core)
  • JDK版本:jdk 1.8.0_171
  • REDIS版本:redis 4.0.10

3 配置主服务器 192.168.1.60

  • 创建安装文件夹,把下载的redis版本放到文件夹中
mkdir -p /data/software
  • redis源码获取
wget http://download.redis.io/releases/redis-4.0.10.tar.gz
  • 若提示找不到wget命令,需先安装wget工具
yum -y install wget
  • 解压,并切换到redis根目录下
tar -zvxf redis-4.0.10.tar.gz
cd ./redis4.0.10
  • 编译和安装redis
make && make install
  • 创建redis存储数据文件的文件夹redis-data
mkdir /data/software/redis 4.0.10/redis-data
  • 创建统一存储Log日志的文件夹LOG
mkdir /data/log/redis
  • 修改redis配置文件,修改的内容如下所示
vim ./redis.conf

--- 将redis设置为守护进程的方式运行,启用后redis会在/var/run文件夹下生成记录pid的文件:”daemonize yes”

--- 保护模式默认开启,当未绑定ip或设置密码时,无法进行非本地连接,可关闭保护模式(因下面已绑定ip及设置密码,这一步配置可忽略,否则加上):”protected-mode no”

--- 将绑定ip修改为本机ip:即”bind 192.168.1.60“

--- 指定记录日志路径:logfile "/data/log/redis/redis.log"

--- 指定redis工作路径,redis的数据保存到磁盘将在此路径下(文件名默认为dump.rdb): “dir  ‘/data/………/redis-data’ “

--- 添加客户端连接redis服务时的访问密码(*号代表自己设置的密码): “requirepass *** ”

--- 配置从服务器访问主服务器密码: “masterauth *** ”

常规配置按以上配置即可,需进一步配置redis其他参数,如快照或AOF等,可参考redis.conf详细配置说明:https://www.cnblogs.com/qq78292959/archive/2013/09/21/3331032.html

  • 启动redis服务
./src/redis-server ./redis.conf
  • 启动服务后,可能出现下列WARNING信息:

① overcommit_memory的警告信息(下图所示),表示overcommit_memory当前设置为0,当系统内存不足时,内存申请可能会不成功。这可能会导致可用内存低时,redis无法保存日志等问题。

解决办法:截图的警告已给出解决办法,分别执行以下三个指令,将overcommit_memory设置为1后重新执行文件:

echo "vm.overcommit_memory=1" > /etc/sysctl.conf
reboot
echo 1 > /proc/sys/vm/overcommit_memory

②  警告内核参数默认128,这对于负载很大的服务是不够的。

解决方法,执行以下指令:

echo 511 > /proc/sys/net/core/somaxconn

4  配置从服务器192.168.1.59 和 192.168.1.58

  redis安装步骤与主服务器操作相同,只是修改配置文件时略有不同:

  • 修改redis配置文件
vim ./redis.conf

--- 将redis设置为守护进程的方式运行:”daemonize yes”

--- 将绑定ip修改为本机ip:”bind 192.168.1.59 “

--- 配置跟随主服务器: “slaveof 192.168.1.60 6379”

--- 指定记录日志路径:logfile "/data/log/redis/redis.log"

--- 指定redis工作路径: “dir  ‘/data/………/redis-data’ “

--- 添加客户端连接redis服务时的访问密码: “requirepass *** ”

--- 配置从服务器访问主服务器密码: “masterauth *** ”


5 redis主从测试

  • redis客户端连接主服务器,添加键值对
./src/redis-cli -h 192.168.1.60 -p 6379 -a ***
-> set name testredis
-> get name 
  • redis客户端连接其中一台从服务器,获取键值对的值
./src/redis-cli -h 192.168.1.58 -p 6379 -a [email protected]
-> get name

  在主服务器上写入键值对后,从服务器能够读取,证明配置正常。


6 配置哨兵,每台服务器配置1个哨兵,在三台服务器均进行相同配置

  • 切换到redis根目录下,配置哨兵
cd ./redis4.0.10
vim ./sentinel.conf

--- 哨兵监控主节点的ip & port:sentinel monitor mymaster 192.168.1.60 6379 2

--- 将redis设置为守护进程的方式运行:”daemonize yes”

--- 关闭保护模式:”protected-mode no”

--- 哨兵工作目录为redis根目录:”dir ‘/data/software/redis4.0.10’ “

--- 指定记录日志路径:logfile "/data/log/redis/sentinel.log"

--- 配置主节点多少毫秒无响应后被视为主观下线(sdown):”sentinel down-after-milliseconds mymaster 10000”

--- 配置主服务客观下线时,进行故障转移的时效,在这个时间段内如果转移没完成,则本次转移失效:”sentinel failover-timeout mymaster 30000”

--- 配置哨兵sentinel连接主从的密码:”sentinel auth-pass mymaster *** ”

  注意点:哨兵配置文件中,若没有配置连接服务器的密码,启动后无法正常监控服务器。

  • 三台服务器均启动哨兵
./src/redis-sentinel ./sentinel.conf
  • 哨兵运行情况测试

  进入主服务器192.168.1.60,杀死redis-server进程:

ps -ef|grep redis-server
kill 主服务进程号

  查看sentinel.log 日志,日志记录主服务主观停止(sdown),哨兵进行投票(vote)后判断主服务器客观停止(odown),继续查看日志,哨兵将主服务切换(switch)到其他从服务器,证明哨兵配置生效。


7 配置redis服务和哨兵 开启自启动

  • 编辑rc.local

  注:rc.local文件是系统全局脚本文件,会在其他开机进程脚本文件执行完毕后执行该文件。

vim /etc/rc.d/rc.local
在rc.local文件末尾加入命令:
# start the redis-server 启动服务
/data/software/redis4.0.10/src/redis-server "data/software/redis4.0.10/redis.conf"

# start the redis-sentinel 启动哨兵
/data/software/redis4.0.10/src/redis-sentinel
"data/software/redis4.0.10/sentinel.conf"
  • 为rc.local增加可执行权限
chmod +x /etc/rc.d/rc.local
  • 重启系统,查看服务是否自动开启
ps -ef|grep redis

  若看到redis-server和redis-sentinel进程,则配置生效。

原文地址:https://www.cnblogs.com/cheerjude/p/10077505.html

时间: 2024-08-23 13:59:58

Redis 主从+哨兵安装与部署的相关文章

redis主从+哨兵模式

主从模式配置分为手动和配置文件两种方式进行配置,我现在有192.168.238.128(CentOS1).192.168.238.131(CentOS3).192.168.238.132(CentOS4)几台机器,只是配置文件的配置方式是降手动配置的命令放在配置文件中而已,本质是一致的.下面将对配置文件方式进行配置,我所述的案例,是基于我自己的另一篇博文<Redis的安装.服务配置>之上: 1.我将CentOS4作为主数据库,其他 模拟为从数据库 2.将CentOS1目录切换到/etc/red

Redis主从哨兵和集群搭建

主从哨兵和集群搭建 主从配置 哨兵配置 集群配置 1.主从: 国王和丞相,国王权力大(读写),丞相权利小(读) 2.哨兵: 国王和王子,国王死了(主服务挂掉),王子继位(从服务变主服务) 3.集群: 国王和国王,一个国王死了(节点挂掉),其他国王还活着,世界还没毁灭 主从配置 流程: 复制多份redis编译之后(make)的文件,分别命名为: xxx-6379 xxx-6380 xxx-6381 ... 开启6379服务和 6380服务 方式一: 在6380的客户端输入:slaveof 127.

redis主从分离讲解与部署

redis主从架构 -> 读写分离架构 -> 可支持水平扩展的读高并发架构 redis replication的核心机制 (1)redis采用异步方式复制数据到slave节点,不过redis 2.8开始,slave node会周期性地确认自己每次复制的数据量 (2)一个master node是可以配置多个slave node的 (3)slave node也可以连接其他的slave node (4)slave node做复制的时候,是不会block master node的正常工作的 (5)sl

Redis主从加Sentinel模式部署

总体部署 一主二从三哨兵 ip地址分配分别为 主 127.0.0.1:6379 从 127.0.0.1:6389 从 127.0.0.1:6399 哨兵 127.0.0.1:26379 哨兵 127.0.0.1:26389 哨兵 127.0.0.1:26399 一主二从的配置文件 redis.conf设置 主的保持默认的不变 二个从的分别打开配置文件 找到设置端口的地方 分别设置为 6389 和6399 # Accept connections on the specified port, de

redis主从+sentinel故障转移部署

redis的认识 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有序集合).这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的.在此基础上,redis支持各种不同方式的排序.与memcached一样,为了保证效率,数据都是缓存在内存中.区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追

Redis 主从哨兵模式搭建

安装单机版redis 1.编译redis cd /opt/ tar zxvf redis-3.0.6.tar.gz cd redis-3.0.6 make 2.创建redis目录 cd src/ mkdir /usr/local/redis cp redis-cli /usr/local/redis/ cp redis-server /usr/local/redis/ cd .. cp redis.conf /usr/local/redis/ 3.修改配置文件 cd /usr/local/red

redis主从+哨兵

首先我们解释一下主从的区别:主对于数据可读可写.从默认是只读不写的.当从连接上主时,主会将数据同步到从上. 主从结构只能保证数据有备份,但是如果主挂掉了,怎么办,整个服务就不可用了,这显然是个大问题.当然redis也帮我们考虑到了这一点.解决方案就是哨兵.他可以作为一个第三方,监控着我们主节点的状态,当发现主挂掉后,就会从这个主的从服务器中进行选举,推选出一个新主,同时slave也切换成这个新主的slave,如果原来的主重启成功了也不会再次成为主了,而是作为slave挂到新主上. spring集

windows下redis集群安装和部署

1.下载windows版本的Redis 官网只提供linux版本的下载 官网下载地址:http://redis.io/download github下载地址:https://github.com/MSOpenTech/redis/tags 解压之后,拷贝到自定义的Redis目录下,例如D:\Redis\Redis 打开cmd,切换到Redis目录下,执行 redis-server redis.windows.conf 再重新打开一个cmd窗口,连接Redis执行 redis-cli.exe -h

部署redis主从集群并开启哨兵模式

一.部署环境系统:centos7通过在Linux系统上启动两个不同的redis实例来完成主从集群的部署yum源已部署 二.redis的下载与安装1.下载:官网下载2.安装创建/app/目录,redis安装在/app/目录下 [[email protected] ~]# mkdir /app [[email protected] ~]# cd /usr/local/src/ [[email protected] src]# ls redis-4.0.11.tar.gz [[email protec