Redis7配置哨兵模式(一主二从三哨兵)

本文涉及的产品
云原生多模数据库 Lindorm,多引擎 多规格 0-4节点
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 MongoDB,通用型 2核4GB
简介: Redis7配置哨兵模式(一主二从三哨兵)

安装redis

#安装gcc 
yum -y install gcc gcc-c++
#安装net-tools
yum -y install net-tools
#官网https://redis.io/
cd /opt/
wget http://download.redis.io/releases/redis-7.0.4.tar.gz
解压至/opt/目录下
tar -zxvf redis-7.0.4.tar.gz -C /opt/

#编译安装
make
make install

image.png

INSTALL redis-server
INSTALL redis-benchmark
INSTALL redis-cli

//启动redis 
redis-server 或 nohup redis-server &
//配置后台启动
redis-server /opt/redis/redis.conf
//停止redis
redis-cli shutdown
#daemonize配置该为yes
vim redis.conf

#配置redis开机自启
vim /etc/systemd/system/redis.service
[Unit]
Description=redis-server
After=network.target
[Service]
Type=forking
ExecStart=/opt/redis/src/redis-server /opt/redis/redis.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
//重载系统服务
systemctl daemon-reload
systemctl start redis
systemctl status redis
systemctl restart redis
//开机自启
systemctl enable redis

#修改配置密码(根据个人需求修改密码)
find / -name redis.conf
vim redis.conf

#创建 redis 命令软链接
find / -name redis-cli
ln -s /usr/local/bin/redis-cli /usr/bin/redis
redis
//登录redis
redis-cli
auth 密码
redis-cli -h 127.0.0.1 -p 6379
redis-cli -h 127.0.0.1 -p 6379 -a 密码
redis-cli -a 密码

#查看所有6379端口使用情况
netstat -ntulp |grep 6379
netstat -ntulp |grep redis

连接配置

vim /opt/redis/redis.conf

注释 bind

#注释

#bind 127.0.0.1 -::1  //bind 127.0.0.1 -::1表示只本机使用 ,注释后表示任意连接

关闭保护模式(自己访问自己)

命令重命名

flushall与flushdb根据项目情况使用

flushall删除所有

flushdb删除当前数据库

rename-command flushall "" #表示flushall不能使用  

rename-command flushdb ""

Redis客户端

命令行客户端

redis-cli -h 127.0.0.1 -p 6379
redis-cli -h 127.0.0.1 -p 6379 -a 密码

图形化桌面客户端

8.8版本后商业化收费

RedisDesktopManager

官网:https://resp.app/

https://github.com/RedisInsight/RedisDesktopManager

链接:https://pan.baidu.com/s/1y3cdOqS1E2UIGW22nr9zNQ?pwd=QGS1 

提取码:QGS1

RedisPlus

https://gitee.com/MaxBill/RedisPlus

RedisDesktopManager-Windows

https://github.com/lework/RedisDesktopManager-Windows/releases

Redis主从集群搭建

Redis的主从集群是一个一主多从的读写分离集群。集群中的 Master节点负责处理客户端的读写请求,Slave节点仅能处理客户端的读请求。只所以要将集群搭建为读写分离模式,主要原因是,对于数据库集群,写操作压力一般都较小,压力大多数来自于读操作请求。所以,只有一个节点负责处理写操作请求即可。

要搭建主从集群,且每个主机都有可能会是 Master,所以最好不要设置密码验证属性 requirepass如果真需要设置,一定要每个主机的密码都设置为相同的。此时每配置文件中都要设置两个完全相同的属性: requirepass masterauth。其中 requirepass用于指定当前主机的访问密码, masterauth用于指定当前save访问 master时向 master提交的访问密码,用于让 master验证自己身份是否合法

repl-disable-tcp-nodelay no          

该属性用于设置是否禁用TCP特性tcp-nodelay。设置为yes则禁用tcp- nodelay,此时master slave间的通信会产生延迟,但使用的TCP包数量会较少,占用的网络带宽会较小相反,如果设置为no,则网络延迟会变小,但使用的TCP包数量会较多,相应占用的网络带宽会大

tcp-nodelay:为了充分复用网络带宽,TCP总是希望发送尽可能大的数据块。

主从的redis.conf配置是一样的
从机多了一个  slaveof 主机ip 端口
或者进入redis配置
两台从机
#从主机向master发送slaveof IP port  表示作为他的从机
slaveof 127.0.0.1 6379

image.png

info replication

slaveof 127.0.0.1 6379

从主机向master发送slaveof IP port  表示作为他的从机

info replication

image.png

哨兵模式

哨兵是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制选择新的master并将所有slave连接到新的master

image.png

每台redis都启动一个哨兵,或者一台虚拟机启动三台哨兵需分配不同端口

新建哨兵空间路径文件

Mkdir -p/opt/sentinel/data

Master

过滤sentinel.conf文件

cat sentinel.conf | grep -v "#" | grep -v "^$"

将过滤的sentinel.conf文件信息新建并加入新文件

cat sentinel.conf | grep -v "#" | grep -v "^$" > /opt/sentinel/sentinel.conf

#sentinel.conf配置文件说明
#哨兵默认端口
port 26379
daemonize no
pidfile "/var/run/redis-sentinel.pid"
logfile "/opt/sentinel/6381.log"
dir "/opt/sentinel/data"
# 2表示配置哨兵,有2个哨兵作出同样的决策,才有决策权
sentinel monitor mymaster 127.0.0.1 6381 2
# master被sentinel认定为失效的间隔时间
sentinel down-after-millisebcodes mymaster 30000
# 剩余的slaves重新和新的master做同步的并行个数
sentinel parallel-syncs mymaster 1
# 主备切换的超时时间,哨兵要去做故障转移,这个时候哨兵也是一个进程,如果他没有去执行,超过这个时间后,会由其他的哨兵来处理
sentinel failover-timeout mymaster 180000
#配置文件
port 26379
daemonize no
pidfile "/var/run/redis-sentinel.pid"
logfile "/opt/sentinel/6380.log"
dir "/opt/sentinel/data"
sentinel monitor mymaster 116.205.131.136 6380 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
bind 0.0.0.0
#启动
redis-sentinel /opt/sentinel/sentinel.conf
ps -ef | grep redis

image.png

转移成功后的sentinel.conf文件

RedisRemote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API

Redis是一个NoSQL数据库,常用缓存(cache)

Redis数据类型:string(字符串)list(链表)set(集合)zset(sorted set --有序集合)hash(哈希类型)

Redis是一个中间件

同步数据(实时性同步数据、阶段性同步数据)

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
1月前
|
NoSQL Java Redis
Springboot从2.x升级到3.x以后redis默认配置调整
Springboot从2.x升级到3.x以后redis默认配置调整
48 0
|
1月前
|
NoSQL Redis Sentinel
【怒怼大厂面试官】听说你精通Redis?说说Redis哨兵
面试官:Redis哨兵知道吧?知道的,Sentinel哨兵本质是一个运行在特殊模式下的Redis服务器。面试官:嗯然后呢?它的主要作用是通过检测Redis主从服务器的下线状态,选举出新Redis主服务器,也就是故障转移,来保证Redis的高可用性。
78 4
【怒怼大厂面试官】听说你精通Redis?说说Redis哨兵
|
2月前
|
NoSQL Redis
若依管理系统去掉Redis相关配置
若依管理系统去掉Redis相关配置
|
2月前
|
NoSQL Redis 数据安全/隐私保护
Docker中Redis的安装与配置
本文主要讲解如何在Docker环境中搭建Redis环境,并进行相关配置
247 5
Docker中Redis的安装与配置
|
1月前
|
NoSQL Linux Redis
Linux系统中安装redis+redis后台启动+常见相关配置
Linux系统中安装redis+redis后台启动+常见相关配置
|
2月前
|
NoSQL Redis Docker
在docker中安装redis,并且阿里云服务器配置
在docker中安装redis,并且阿里云服务器配置
188 1
|
2天前
|
监控 NoSQL Redis
Redis的哨兵模式详解
Redis的哨兵模式详解
7 0
|
1月前
|
NoSQL 关系型数据库 MySQL
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
224 0
|
1月前
|
存储 监控 NoSQL
Redis 架构深入:主从复制、哨兵到集群
大家好,我是小康,今天我们来聊下 Redis 的几种架构模式,包括主从复制、哨兵和集群模式。
Redis 架构深入:主从复制、哨兵到集群
|
1月前
|
NoSQL 算法 数据管理
【Redis】Redis配置参数详解:优化过期删除机制
【Redis】Redis配置参数详解:优化过期删除机制
81 0

相关产品

  • 云数据库 Redis 版