Docker 安装 Redis 单机&集群总结

docker,安装,redis,单机,集群,总结 · 浏览次数 : 76

小编点评

**Redis 集群安装指南** **引言** Redis 是一个开源的分布式键值对数据库,可用于各种应用,如缓存、日志记录和消息队列。 **配置** 1. 创建一个名为 `data` 的目录并将其放置在主机上。 2. 创建一个名为 `redis.conf` 的配置文件,并将其放置在 `data` 目录中。 3. 创建一个名为 `compose.yml` 的配置文件,并将其放置在 `data` 目录中。 **配置 `redis.conf`** ``` # 主机地址 host 192.168.123.216 # 端口 port 6379 # 启用 AOF 持久化 appendonly yes # 设置密码 requirepass devops666v6.0 # 设置集群配置 cluster-enabled yes cluster-config-file nodes.conf ``` **配置 `compose.yml`** ``` version: '3.1' services: redis: container_name: cluster_redis_6380 image: redis:6.2.13 restart: always command: redis-server /usr/local/etc/redis/redis.conf volumes: - ./data:/data - ./config/redis.conf:/usr/local/etc/redis/redis.conf ports: - '6380:6380' - '16380:16380' redis-6381: container_name: cluster_redis_6381 image: redis:6.2.13 restart: always command: redis-server /usr/local/etc/redis/redis.conf volumes: - ./data:/data - ./config/redis.conf:/usr/local/etc/redis/redis.conf ports: - '6381:6381' - '16381:16381' # 其他服务配置... ``` **创建集群** ``` docker exec -it cluster_redis_6380 redis-cli -p 6380 --cluster create \ ${devops02}:6380 \ ${devops02}:6381 \ ${devops03}:6380 \ ${devops03}:6381 \ ${devops04}:6380 \ ${devops04}:6381 \ --cluster-replicas 1 \ --cluster-yes连接集群测试(redis-cli) ``` **连接集群** 使用任何 Redis 客户端,例如 `redis-cli`,连接到集群。 **注意事项** * 使用 `cluster-replicas 1` 创建集群,默认情况下集群会创建 1 个节点。 * `cluster-yes`选项允许您从控制节点上连接到集群。 * `data` 目录需要在服务器上存在。

正文

前言

Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于 内存 分布式 、可选持久性的键值对( Key-Value )存储数据库

安装单机版

  • 安装源:DockerHub

  • 默认配置文件:配置文件示例 6.2

  • 运行时指定配置文件

    • docker run -v /myredis/conf:/usr/local/etc/redis --name myredis redis redis-server /usr/local/etc/redis/redis.conf
      
  • 局域网访问配置

    • #不限制IP访问,局域网能够访问
      bind 0.0.0.0
      #禁用保护模式
      protected-mode no
      
  • 设置密码:requirepass devops666

  • v6.0 后的版本增加了通过 ACL 的方式设置用户名密码

  • 持久化:appendonly yes

  • 启用后默认使用的 AOF(Append-Only File)持久化方式

  • AOF/RDB 等持久化方式文档说明

  • compose.yml

    • version: '3.1'
      services:
        redis:
          container_name: db_redis_6_2
          image: redis:6.2.13
          restart: always
          command: redis-server /usr/local/etc/redis/redis.conf
          volumes:
            - ./data:/data
            - ./config/redis.conf:/usr/local/etc/redis/redis.conf
          ports:
            - "6379:6379"
          networks:
            - devopsnetwork
      
      networks:
        devopsnetwork:
          external: true
      
  • redis.conf

    • #不限制IP访问,局域网能够访问
      bind 0.0.0.0 
      #禁用保护模式
      protected-mode no 
      
      #端口
      port 6379
      
      #密码 
      requirepass devops666
      
      #开启AOF日志 指定持久化方式
      appendonly yes 
      
  • 安装成功,可以使用 dbeaver 连接查看

搭建 Redis 集群

Redis 集群是一种高可用、可水平扩展的 Redis 部署方式。它将 Redis 数据库分布在多个节点上,是为了提供高性能、高可用性和可伸缩性而设计的分布式 Redis 解决方案

需要注意的点

  • 配置、管理和维护成本相对高
  • 不支持多数据库,只能使用 0 数据库
  • 不支持跨节点的事务操作
  • 批量操作时支持有限,如数据不在一个节点,则会报错
  • 在部署 Redis 集群模式时,至少需要六个节点组成集群才能保证集群的可用性。

集群规划

  • 节点分配

    • devops02:192.168.123.216
    • devops03:192.168.123.219
    • devops04:192.168.123.222
  • 端口分配

    • 6389: redis 访问端口
    • 16389: 集群端口, 普通端口号加 10000,集群节点之间的通讯
  • 不要设置密码,未找到节点间通信带密码的解决方案,-a password 只是主节点访问使用

  • 集群的 redis 配置模板

    • #端口
        port 6380
      
        #是否开启 Redis 集群模式
        cluster-enabled yes
      
        #设置 Redis 集群配置信息及状态的存储位置
        cluster-config-file nodes.conf
      
        #设置 Redis 群集节点的通信的超时时间
        cluster-node-timeout 5000
        appendonly yes
        daemonize no
        protected-mode no
        pidfile  /data/redis.pid
      
        #主节点需要的最小从节点数,只有达到这个数,主节点失败时,它从节点才会进行迁移。
        # cluster-migration-barrier 1
      
        #设置集群可用性
        # cluster-require-full-coverage yes
        # 集群节点 IP,如果要外部访问需要修改为宿主机IP,如:192.168.123.216 
        # cluster-announce-ip 默认172.x.x.x
        #客户端连接端口
        #cluster-announce-port 6380
        #节点间通信端口
        #cluster-announce-bus-port 16380
      
  • docker compose.yml 配置模板

    • version: '3.1'
        services:
          redis:
            container_name: cluster_redis_6380
            image: redis:6.2.13
            restart: always
            command: redis-server /usr/local/etc/redis/redis.conf
            volumes:
              - ./data:/data
              - ./config/redis.conf:/usr/local/etc/redis/redis.conf
            ports:
              - '6380:6380'
              - '16380:16380'
      

集群部署

将上面的配置模板文件按下面的目录结构创建

- node-cluster
  - redis-6380
    - config
      - redis.conf :需要配置模板中修改 port:6380
    - compose.yml:需要配置模板中修改 container_name: cluster_redis_6380
  - redis-6381
    - config
      - redis.conf :需要配置模板中修改 port:6381
    - compose.yml:需要配置模板中修改 container_name: cluster_redis_6381
  1. 修改 redis.conf 中的 port

  2. 修改 compose.yml 中的 container_name: cluster_redis_6381

  3. 将 node-cluster 目录上传到准备的集群节点服务器:192.168.123.216,192.168.123.219,192.168.123.222

  4. 在服务器的对应目录中执行 docker compose up -d,确保容器正常运行

  5. 依托于创建的 redis 容器,使用下面的命令创建集群并添加节点

      devops02=192.168.123.216
      devops03=192.168.123.219
      devops04=192.168.123.222
      docker exec -it cluster_redis_6380 redis-cli -p 6380 --cluster create \
      ${devops02}:6380 \
      ${devops02}:6381 \
      ${devops03}:6380 \
      ${devops03}:6381 \
      ${devops04}:6380 \
      ${devops04}:6381 \
      --cluster-replicas 1 \
      --cluster-yes
    

  6. 连接集群测试(redis-cli)

    1. docker exec -it cluster_redis_6380 redis-cli -p 6380 -c
      
    2. 查看集群信息:cluster info
    3. 查看集群节点信息:cluster nodes
    4. 本地连接测试:redis-cli -h 192.168.123.216 -p 6380 -c

至此,终于是一步步的创建好了 Redis 集群

集群外部访问问题

当 redis.conf 没有设置 cluster-announce-ip 时,使用redis-cli访问没有问题,但是会发现连接时访问节点会变成容器内部IP

导致的结果就是 使用一些Redis客户端连接会超时,无法使用。要解决这个问题,需要将每个节点的 redis.conf 中的 cluster-announce-ip 配置修改为其宿主机IP即可,可以这样做

  • 新建对应文件夹及配置

  • 复制对应IP文件夹到服务器再创建集群即可

  • 工具连接测试

后语

假期结束,先是折腾了一会创建集群密码的问题,然后又是尝试各种连接工具,终于搞定了集群的安装,完美的假期。

与Docker 安装 Redis 单机&集群总结相似的内容:

Docker 安装 Redis 单机&集群总结

前言 Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于 内存 、 分布式 、可选持久性的键值对( Key-Value )存储数据库 redis版本:redis:6.2.13 作者:易墨 安装单机版 安装源:DockerHub 默认配置文件:配置文件示例 6.

[转帖]使用docker安装redis、启动并设置密码

https://www.cnblogs.com/goloving/p/15087357.html 一、docker 安装 redis 步骤 1、找一个合适的 redis 版本 —— 目前推荐的稳定版是 5.0 2、使用 docker 安装 redis docker pull redis:5.0 do

服务器重置实例后的部署工作

参考:https://www.cnblogs.com/warrenwt/p/18215341(docker安装redis) 因为服务器前段时间一直由木马,而且还被挖过矿,想直接重装下系统吧,顺便捋一下整个服务器需要各项配置,以下是我的整理清单 使用nginx做反向代理,nginx是直接yum安装的

Node工程使用云服务器中的redis镜像做数据库

Redis镜像安装 在云服务器中执行指令 docker pull redis 添加redis镜像实例的配置 [root@VM-0-11-centos ~]# cd /home [root@VM-0-11-centos home]# ls mongotest [root@VM-0-11-centos

Docker安装

Docker安装 1、环境说明 CentOS Docker 安装 前提条件 目前,CentOS 仅发行版本中的内核支持 Docker。Docker 运行在CentOS 7 (64-bit)上,要求系统为64位、Linux系统内核版本为 3.8以上,这里使用Centos7.9 查看自己的内核 cat

[转帖]Docker 安装部署RabbitMQ

https://www.jianshu.com/p/14ffe0f3db94 15691 15692 这两个端口挺有用的 这里注意获取镜像的时候要获取management版本的,不要获取last版本的,management版本的才带有管理界面。 获查询镜像 docker search rabbitm

[转帖]docker安装ntp服务器并校时

https://www.javaclub.cn/server/61611.html 内网环境下,几台机器可能出现时间不一致的情况,导致数据时间不一致。使用docker安装ntp服务器简单快捷、不依赖具体操作系统环境。 1.安装命令: docker run -d --net=host --cap-ad

Docker 安装 Nginx 教程

## Docker 安装 ### 1.拉取镜像 ``` powershell PS C:\Users\Administrator> docker pull nginx ``` ### 2.创建挂载目录 ``` powershell PS C:\Users\Administrator> mkdir -

Docker 安装 OpenResty教程

## Docker 部署 ### 1.拉取镜像 ``` powershell PS C:\Users\Administrator> docker pull openresty/openresty ``` ### 2.启动openresty ``` powershell PS C:\Users\Adm

Docker安装MS SQL Server并使用Navicat远程连接

MS SQL Server简介 Microsoft SQL Server(简称SQL Server)是由微软公司开发的关系数据库管理系统,它是一个功能强大、性能卓越的企业级数据库平台,用于存储和处理大型数据集、支持高效查询和分析等操作。SQL Server 支持广泛的应用程序开发接口(API),包括