Docker 安装 Redis 单机&集群总结
前言
Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于 内存 、 分布式 、可选持久性的键值对( Key-Value )存储数据库
- redis版本:redis:6.2.13
- 作者:易墨
安装单机版
安装源:DockerHub
运行时指定配置文件
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 devops666v6.0 后的版本增加了通过 ACL 的方式设置用户名密码
持久化:
appendonly yes启用后默认使用的 AOF(Append-Only File)持久化方式
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
修改 redis.conf 中的 port
修改 compose.yml 中的 container_name: cluster_redis_6381
将 node-cluster 目录上传到准备的集群节点服务器:192.168.123.216,192.168.123.219,192.168.123.222
在服务器的对应目录中执行
docker compose up -d,确保容器正常运行
依托于创建的 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

连接集群测试(redis-cli)
docker exec -it cluster_redis_6380 redis-cli -p 6380 -c
- 查看集群信息:
cluster info - 查看集群节点信息:
cluster nodes 
- 本地连接测试:
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 cluster集群
安装Redis镜像 docker pull yyyyttttwwww/redis 创建redis容器 docker run -it -d --name r1 -p 5001:6379 --net=ne ...
- 使用docker安装部署Spark集群来训练CNN(含Python实例)
使用docker安装部署Spark集群来训练CNN(含Python实例) http://blog.csdn.net/cyh_24/article/details/49683221 实验室有4台神服务器 ...
- docker1.12 安装redis第三方集群方案 codis
docker1.12 安装redis第三方集群方案 codis
- Docker安装部署es集群
Docker安装部署es集群:环境准备:已安装docker的centos服务器一台1. 拉取es版本docker pull elasticsearch:5.6.82. 新建文件夹 数据挂载目录 和 配 ...
- docker安装Elasticsearch7.6集群并设置密码
docker安装Elasticsearch7.6集群并设置密码 Elasticsearch从6.8开始, 允许免费用户使用X-Pack的安全功能, 以前安装es都是裸奔.接下来记录配置安全认证的方法. ...
- 单台服务器-利用docker搭建Redis哨兵集群模式
前言:只有一台华为云服务器,所以打算创建三个容器来模拟三个服务器了. 一:拉取redis镜像 二:拉取redis.conf文件 放在自定义的目录下:wget -c http://download.re ...
- linux 安装redis和集群
一.安装redis单机 1.安装编译环境 Redis是c语言开发的. 安装redis需要c语言的编译环境.如果没有gcc需要在线安装.yum install gcc-c++ 2.安装步骤: 第一步:r ...
- Docker 搭建 Redis Cluster 集群环境
使用 Docker 搭建 Redis Cluster,最重要的环节就是容器通信的问题,这一块我们在之前的文章中已经给大家解决了<Docker 网络模式详解及容器间网络通信>,本篇文章主要练 ...
- CentOS7 安装Redis Cluster集群
上一篇中已经讲到了如何安装单击版Redis,这一篇我们来说下如何安装Cluster,关于哨兵模式这里我就不写文章安装了,有兴趣的同学可以自己去研究,哨兵模式可以在主从模式下在创建三台机器的哨兵集群监控 ...
- Centos6 安装 Redis 和集群配置
Redis安装 先确认gcc和tcl已经安装 sudo yum install gcc-c++ sudo yum install tcl 解压, 编译和安装 .tar.gz /usr/src/ cd ...
随机推荐
- Taurus .Net Core 微服务开源框架:Admin 插件【3】 - 指标统计管理
前言: 继上篇:Taurus .Net Core 微服务开源框架:Admin 插件[2] - 系统环境信息管理 本篇继续介绍下一个内容: 1.系统指标节点:Metric - API 界面 界面图如下: ...
- Taurus .Net Core 微服务开源框架:Admin 插件【4-3】 - 配置管理-Mvc【Plugin-MicroService 微服务】
前言: 继上篇:Taurus .Net Core 微服务开源框架:Admin 插件[4-2] - 配置管理-Mvc[含请求日志打印] 本篇继续介绍下一个内容: 1.系统配置节点:Mvc - Plugi ...
- PostgreSQL 12 文档: 部分 V. 服务器编程
部分 V. 服务器编程 这部分关于使用用户定义的函数.数据类型.触发器等扩展服务器功能.这些是高级主题,读者应该在理解了有关PostgreSQL的所有其他用户文档之后才阅读这些主题.这一部分的后面一些 ...
- 1.7 完善自定位ShellCode后门
在之前的文章中,我们实现了一个正向的匿名管道ShellCode后门,为了保证文章的简洁易懂并没有增加针对调用函数的动态定位功能,此类方法在更换系统后则由于地址变化导致我们的后门无法正常使用,接下来将实 ...
- Spring Cloud 之OpenFeign
Spring Cloud 之OpenFeign 一:简介 Feign是一个声明式(对比RestTemplate编程式)的服务客户端,即通过@FeignClient注解即可声明一个接口(interf ...
- 【调制解调】PM 调相
说明 学习数字信号处理算法时整理的学习笔记.同系列文章目录可见 <DSP 学习之路>目录,代码已上传到 Github - ModulationAndDemodulation.本篇介绍 PM ...
- Django常用配置
创建Django项目(命令行) 创建项目:打开终端,使用命令:django-admin startproject [项目名称]即可创建.比如:django-admin startproject fir ...
- 开源.NetCore通用工具库Xmtool使用连载 - HTTP请求篇
[Github源码] <上一篇> 介绍了Xmtool工具库中的XML操作类库,今天我们继续为大家介绍其中的HTTP请求类库. 在现如今的软件需求场景中,HTTP网络请求几乎是开发过程中必然 ...
- Linux字符界面安装更新VMware Tools
注:yeesn为我自己的用户名,实际操作中改用自己的用户名 1.切换到虚拟光驱目录 cd /media/yeesn/VMware Tools 2.复制压缩包到桌面 cp VMwareTools-xxx ...
- 【全新重构发布】iNeuOS工业互联网操作系统 V5 版本
iNeuOS工业互联网操作系统历经迭代27个版本,老版本截止更新V4.1版本:历时一年多时间,现在正式发布全新V5版本,V5版本与V4.1老版本不完全兼容. 发布V5版本后,iNeuOS工业互联网操作 ...




