首页 > 数据库 >Redis主从架构环境搭建(一主二从 + 3个sentinel)

Redis主从架构环境搭建(一主二从 + 3个sentinel)

时间:2023-09-17 16:12:28浏览次数:47  
标签:mymaster 0.1 Redis redis server 6379 sentinel 一主二

安装Redis Server

sudo add-apt-repository ppa:redislabs/redis
sudo apt update
sudo apt install redis-server

redis-cli -h 127.0.0.1 -p 6379 ping
sudo systemctl restart redis-server
ss -an | grep 6379

redis-server -v

Redis server v=7.0.12 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=b56540d7933227fd

配置初始化环境
cd ~
mkdir redis
sudo mkdir -p /opt/soft/redis/data
sudo rm -rf /opt/soft/redis/data

创建配置文件:
vi vi ~/redis/redis-6379.conf
port 6379
requirepass "D3v3lop!"
daemonize yes
logfile "6379.log"
dbfilename "dump-6379.rdb"
dir "/opt/soft/redis/data/"

sudo redis-server ~/redis/redis-6379.conf &
telnet localhost 6379
输入quit,回车后退出telnet

sudo redis-cli -h 127.0.0.1 -p 6379 -a D3v3lop! ping

vi ~/redis/redis-6380.conf
port 6380
daemonize yes
logfile "6380.log"
dbfilename "dump-6380.rdb"
dir "/opt/soft/redis/data/"

sudo redis-server ~/redis/redis-6380.conf &
sudo redis-cli -p 6380 ping

vi ~/redis/redis-6381.conf
port 6381
daemonize yes
logfile "6381.log"
dbfilename "dump-6381.rdb"
dir "/opt/soft/redis/data/"

sudo redis-server ~/redis/redis-6381.conf &
sudo redis-cli -p 6381 ping

确认主从关系
redis-cli -p 6380 info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6379
master_link_status:up
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_read_repl_offset:2126023
slave_repl_offset:2126023
slave_priority:100
slave_read_only:1
replica_announced:1
connected_slaves:0
master_failover_state:no-failover
master_replid:9a89593acd81f0f2df663d466281c63f6e743739
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:2126023
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2019111
repl_backlog_histlen:106913

配置哨兵
vi ~/redis/redis-sentinel-26379.conf
port 26379
daemonize yes
logfile "26379.log"
dir "/opt/soft/redis/data"
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel auth-pass mymaster D3v3lop!
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000

sudo redis-server ~/redis/redis-sentinel-26379.conf --sentinel
sudo redis-cli -p 26379 ping

vi ~/redis/redis-sentinel-26380.conf
port 26380
daemonize yes
logfile "26380.log"
dir "/opt/soft/redis/data"
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel auth-pass mymaster D3v3lop!
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000

sudo redis-server ~/redis/redis-sentinel-26380.conf --sentinel
sudo redis-cli -p 26380 ping

vi ~/redis/redis-sentinel-26381.conf
port 26381
daemonize yes
logfile "26381.log"
dir "/opt/soft/redis/data"
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel auth-pass mymaster D3v3lop!
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000

sudo redis-server ~/redis/redis-sentinel-26381.conf --sentinel
sudo redis-cli -p 26381 ping

查看哨兵
redis-cli -p 26379 info Sentinel

# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_tilt_since_seconds:-1
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=127.0.0.1:6379,slaves=2,sentinels=3

测试从服务器自动升级为主服务器

关掉主Redis
sudo ps aux|grep redis
root 33 0.2 0.1 162028 11772 ? Ssl 09:06 0:06 redis-server *:6379
root 59 0.3 0.1 162028 11868 ? Ssl 09:08 0:06 redis-server *:6381
root 68 0.3 0.1 83812 13884 ? Ssl 09:09 0:07 redis-server *:26379 [sentinel]
root 75 0.3 0.1 83812 13812 ? Ssl 09:09 0:07 redis-server *:26380 [sentinel]
root 82 0.3 0.1 83820 13452 ? Ssl 09:10 0:06 redis-server *:26381 [sentinel]
root 114 0.3 0.1 162028 11824 ? Ssl 09:22 0:04 redis-server *:6380
sudo kill -9 33

redis-cli -p 26379 info Sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_tilt_since_seconds:-1
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=127.0.0.1:6381,slaves=2,sentinels=3

spring boot ymal配置
redis:
sentinel:
master: mymaster
nodes: 127.0.0.1:26379
password: D3v3lop!
lettuce:
pool:
max-active: 32
max-wait: 300ms
max-idle: 16
min-idle: 8
connect-timeout: 1000
port: 26379

标签:mymaster,0.1,Redis,redis,server,6379,sentinel,一主二
From: https://www.cnblogs.com/terry-cc/p/17708975.html

相关文章

  • 【红包雨功能的】环境部署(弹性伸缩、负载均衡、Redis读写分离、云服务器部署)
    创建环境创建专用网络VPC安全组创建云服务器打包部署2.Java环境#下载jdk17wgethttps://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz#安装上传工具以后使用命令rz选中文件进行上传yuminstall-ylrzsz#解压tar-xzvfjdk-17_linux-x64_b......
  • SpringBoot Redis使用AOP防止重复提交
    自定义注解importjava.lang.annotation.ElementType;importjava.lang.annotation.Retention;importjava.lang.annotation.RetentionPolicy;importjava.lang.annotation.Target;/***@ProjectName:gswr-ets-cloud*@ClassName:*@Description:防止重复提交的自定义......
  • redis该怎么用
    最近一些人在介绍方案时,经常会出现redis这个词,于是很多小伙伴百度完redis也就觉得它是一个缓存,然后项目里面把数据丢进去完事,甚至有例如将实体属性拆分塞进redishash里面的奇怪用法等等!原因是什么呢?大家觉得redis火,使用了redis项目就是高大上的,于是不管三七二十一,项目里用上强塞一......
  • Redis急速说明
    Redis急速部署前言:需求的出现在Web应用发展的初期,那时关系型数据库受到了较为广泛的关注和应用,原因是因为那时候Web站点基本上访问和并发不高、交互也较少。而在后来,随着访问量的提升,使用关系型数据库的Web站点多多少少都开始在性能上出现了一些瓶颈,而瓶颈的源头一般是在磁盘......
  • 在CentOS上安装Redis-cli工具
    如果你想在CentOS上安装Redis-cli工具,可以按照以下步骤进行操作:1.安装Redis依赖包:在命令行中执行以下命令安装Redis依赖包:```sudoyuminstallgccmake```2.下载Redis源代码包:从Redis官网(https://redis.io/download)下载最新的Redis源代码包。3.解压源代码包:将下载的Redis......
  • SpringBoot + Redis + Token 解决接口幂等性问题
    前言SpringBoot实现接口幂等性的方案有很多,其中最常用的一种就是token+redis方式来实现。下面我就通过一个案例代码,帮大家理解这种实现逻辑。原理前端获取服务端getToken()->前端发起请求->header中带上token->服务端校验前端传来的token和redis中的token是否......
  • 【心得】TP6使用Redis进行处理商城秒杀
    书接上回,上次分享了TP6对于Redis的基础使用,那么今天就为大家带来一个简单的,使用场景很高的心得代码风险,Redis在商城秒杀的使用,该代码为简单分享能解决一些基础后续可以根据自己所需进行业务重构。读这篇文章的我就默认大家已经环境都安装好了,如果不知道怎么安装的可以传送到这里......
  • [粘贴]github-redis-rdb-cli
    redis-rdb-cliAtoolthatcanparse,filter,split,mergerdbandanalyzememoryusageoffline.Itcanalsosync2redisdataandallowuserdefinethereownsinkservicetomigrateredisdatatosomewhere.  ChatwithauthorContracttheauthorchen.b......
  • 【心得】TP6 使用redis基础
    在业务场景中,我们会面对一些对于不经常更改的数据,但是会频繁访问,会对数据库造成不必要的负载,以及对于一些高并发的处理我们都需要用到缓存的技术,目前主流使用的缓存有MemChachedRedis等,当然我们也有TP框架自带的缓存。但是今天我给大家带来的是redis的基础使用。第一步安装red......
  • Redis7 10大数据类型(Redis集合)
    一、常用二、单值多value,且无重复三、案例SADDkeymember[member...]添加元素SMEMBERSkey遍历集合中的所有元素SISMEMBERkeymember判断元素是否在集合中SREMkeymember[member...]删除元素scard获取集合里面的元素个数SRANDMEMBERkey[数字]从集合中随机展现......