首页 > 数据库 >docker 搭建redis一主两三哨兵(redis:6.2.14-alpine)

docker 搭建redis一主两三哨兵(redis:6.2.14-alpine)

时间:2024-12-17 15:57:04浏览次数:7  
标签:14 redis 6.2 conf RDB sentinel docker data

 前言

     一般来说,因为性能,安全,持久化等问题,docker 搭建的环境时很少推荐用来当生产环境的,但是最近公司的一个项目居然要用docker来搭建生产环境,没办法,客户就时上帝,客户说啥就是啥。

    当然这次部署还有用docker 部署nacos集群、minio集群、mysql主从、rabbitmq集群,整套部署就redis和rabbitmq遇到了麻烦,其他搭建比较顺利。后面会把rabbitmq集群整理发出来

     本次部署时在三台服务器上单独搭建docker并做成集群,你没有听错,就是三台服务器上,用docker搭建! 用docker!

步骤

 1. 创建持久化目录

mkdir /data/redis/{conf,data}

2.创建配置文件

docker run -itd --name redis redis:6.2.14-alpine

cd /data/redis/conf

docker cp redis:/usr/local/etc/redis/redis.conf ./

修改配置文件,具体的参数具体改,先找一份对应版本的redis.conf ,地址奉上:redis.conf · Gitee 极速下载/redis - Gitee.com

1.先在网络部分注释掉单机连接那一行,即注释掉bind 127.0.0.1 
2.同样我们要将后台运行打开: daemonize no,设置为yes。
3.将 保护模式关闭:protected-mode yes 改为:protected-mode no 


4.打开RDB持久化配置:
#RDB持久化策略 默认三种方式,[900秒内有1次修改],
#[300秒内有10次修改],[60秒内有10000次修改]即触发RDB持久化,
#我们可以手动修改该参数或新增策略
save 900 1
save 300 10
save 60 10000 
#RDB文件名
dbfilename dump.rdb
#RDB文件存储路径
dir ./
策略配置:
#在seconds秒内有changes次数据修改就触发RDB持久化


5.开启AOF持久化配置
appendonly yes
#AOF文件名
appendfilename "appendonly.aof"
#AOF文件存储路径 与RDB是同一个参数,共用一个文件路径
dir ./  #即bin目录下
#AOF策略,一般都是选择第一种[always:每个命令都记录],
#[everysec:每秒记录一次],[no:看机器的心情高兴了就记录,linux一般半个小时同步一次]
#appendfsync always
appendfsync everysec
# appendfsync no
#aof文件大小比起上次重写时的大小,增长100%(配置可以大于100%)时,触发重写。
#[假如上次重写后大小为10MB,当AOF文件达到20MB时也会再次触发重写,以此类推
auto-aof-rewrite-percentage 100 
#aof文件大小超过64MB*2时,触发重写,
#为何要乘以2,因为auto-aof-rewrite-percentage 100 是翻倍即100%,
#达到翻倍时才重写
auto-aof-rewrite-min-size 64mb 

6.打开混合持久化:
#6.aof-use-rdb-preamble yes # 检查混合持久化是否打开,redis5.0后默认开启

# 设置密码
requirepass redis123

# 访问mast节点 密码
masterauth redis123

注意:节点2和节点3 需要添加 slaveof 172.18.29.22 6379 配置在redis.conf,中间的ip是主节点的ip地址

3.编写redis的docker-compose.yaml文件

version: '3.8'
services: 
   redis:
    image: redis:6.2.14-alpine
    container_name: erdc-redis
    restart: always
    network_mode: host
    command: redis-server /usr/local/etc/redis/redis.conf --requirepass Pw!123456
    environment:
      TZ: Asia/ShangHai
    volumes: 
      - /data/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf
      - /data/redis/data:/data
    deploy:
      resources:
        limits:
          cpus: '0.5'
          memory: 1024M

4.启动节点

启动节点
docker-compose up -d

检查主从是否ok

检查主从
docker exec -it erdc-redis /bin/sh

redis-cli 
auth redis123
info Replication

# Replication
role:master
connected_slaves:2
slave0:ip=192.168.181.99,port=6379,state=online,offset=1302,lag=0
slave1:ip=192.168.181.88,port=6379,state=online,offset=1302,lag=0
master_replid:17b366526904583fd593f0174f628c3140adfebc
master_replid2:0000000000000000000000000000000000000000

5.搭建哨兵

哨兵配置文件 ,网上的配置都是要把

redis-cli -h 192.168.181.145 -p 6379
auth Pw!123456
info Replication

配置加上去,但是,不要加不要加,加上就启动不了哨兵了,具体原因我也没搞懂,反正是卡着我大半天了,danm!

直接用下面文件就ok了

mkdir  /data/sentinal/{conf,data}

cd /data/sentinel

vi sentinal.conf

----------------------
sentinal.conf
----------------------
port 26379
daemonize yes
sentinel monitor mymaster 172.18.29.101 6379 2
sentinel auth-pass mymaster Pw!123456
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000

6.启动哨兵命令(懒得写docker-compose.yaml)

docker run -d --name redis-sentinel \
  -v /data/sentinel/sentinel.conf:/usr/local/etc/redis/sentinel.conf \
  --network host \
  redis:6.2.14-alpine redis-sentinel /usr/local/etc/redis/sentinel.conf

检查哨兵

#检查
docker exec -it redis-sentinel /bin/bash
redis-cli -h 127.0.0.1 -p 26379 
auth Pw!123456
info sentinel

标签:14,redis,6.2,conf,RDB,sentinel,docker,data
From: https://blog.csdn.net/weixin_51214282/article/details/144536989

相关文章

  • 分布式高速缓存Redis
    Redis是一个开源的(BSD许可)、内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。以下是关于Redis作为分布式高速缓存的详细内容:一、基本概念与特点高速性能Redis将数据存储在内存中,内存的读写速度远远高于磁盘。这使得Redis能够在极短的时间内处理大量的读写请求......
  • Redis的介绍以及安装
    本篇转载黑马课程的md文件,仅供学习使用介绍:Redis是一种键值型的NoSql数据库,这里有两个关键字:键值NoSql其中键值型,是指Redis中存储的数据都是以key.value对的形式存储,而value的形式多种多样,可以是字符串.数值.甚至json:而NoSql则是相对于传统关系型数据库而言,有很大差异......
  • mfc140.dll文件缺失的修复方法分享,全面分析mfc140.dll的几种解决方法
    mfc140.dll是MicrosoftFoundationClasses(MFC)库中的一个动态链接库(DLL)文件,它是微软基础类库的一部分,为Windows应用程序的开发提供了丰富的类库和接口。MFC库旨在简化Windows应用程序的开发过程,提供了一系列预定义的C++类,这些类封装了WindowsAPI函数,使得开发者可以更方便地创......
  • 基于 JWT + Redis + Spring Boot 的登录授权实现详解
    一、JWT、Redis与SpringBoot的简介1.1JWT简介JWT(JSONWebToken)是一种开放标准(RFC7519),用于在各方之间传递JSON格式的信息。它通常用于用户认证,具有以下特点:无状态:JWT是一种无状态认证方式,信息包含在Token内部,服务器无需存储会话信息。跨平台支持:Token可以......
  • 【阿来来gis规划师工具箱说明书】b14获取指定要素字段值及其占比
    背景一个林业的需求,制作后,发现其实还可以有别的用途。比如统计村庄建设用地范围内的用地情况。这个功能很类似空间联接,不同的在于这个可以统计相应的面积值。后续经过拓展,增加了只保留大面积值,以及椭球面积等的选项。制作思路指定2个图层的2个字段,先标注各个图层斑的唯一......
  • 教你4步springboot整合Redis
    一、添加依赖<dependencies><!--SpringBootRedis依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>......
  • Redis网络模型
    目录Redis为什么快?Redis到底是单线程还是多线程?Redis网络模型初始化事件循环Redis为什么快?Redis之所以能够提供高速的性能主要得益于两个方面:内存存储:除了持久化外,Redis的操作都在内存中,这是其性能优势的根本。内存的读写速度远远快于磁盘,因此Redis能够实现极低的读写......
  • Redis 哨兵 Sentinel 配置
    节点规划redis-01192.168.174.10816379redis-02192.168.174.11216379redis-03192.168.174.11716379chown-Rredis:redis/usr/local/redis/etc/redis主从配置在所有节点执行sed-i-e's@port6379@port16379@'-e's@bind127.0.0.1@bind0.0.0.0@g�......
  • Redis 哨兵与集群基础:数据冗余与备份的主从舞蹈
    1、redis主从配置1.1、简介像MySQL一样,redis是支持主从同步的,而且也支持一主多从以及多级从结构。 主从结构,一是为了纯粹的冗余备份,二是为了提升读性能,比如很消耗性能的SORT就可以由从服务器来承担。 redis的主从同步是异步进行的,这意味着主从同步不会影响主逻辑,也不会降低......
  • 【LC】141. 环形链表
    题目描述:给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从0开始)。注意:pos 不作为参数进行传递 。......