Windos Docker Redis cluster 集群部署(linux一样)

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_40254498/article/details/79219355 废话不多说直接进入主题(第一次写,有不对的地方请指教。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_40254498/article/details/79219355

废话不多说直接进入主题(第一次写,有不对的地方请指教。。大牛就放过我把)

docker 安装我采用的是window10 hyper-v ,直装版,这里就不做操作了

  • (我采用3.0.7的redis版本,用其他也行)
 # docker pull redis:3.0.7
  • 构建 redis-cluster

创建Dockerfile 文件

FROM redis:3.0.7
EXPOSE 6379
ADD redis.conf /redis.conf
ENTRYPOINT [ "redis-server", "/redis.conf" ]

dockerfile文件阅读也比较简单~
接下来
在同目录下放redis.conf(3.0.7版本)的配置文件

  • 修改dockerfile目录下的redis.conf 文件
  • 构建 dokcer images

    进入dockerfile目录

# docker build-t  “redis-cluster” .

注意后面有一个点当前目录
没写tag 默认latest

  • 为了使容器ip固定 重启后也是一样的
# docker network create --subnet=172.11.0.0/16  redis //创建网络
  • 创建 redis-cluster 结点容器
# docker run -d --net redis --ip 172.11.0.91 -p 8001:6379 --name redis1redis-cluster

# docker run -d --net redis --ip 172.11.0.92 -p 8002:6379 --name redis2redis-cluster

# docker run -d --net redis --ip 172.11.0.93 -p 8003:6379 --name redis3redis-cluster

# docker run -d --net redis --ip 172.11.0.94 -p 8004:6379 --name redis4redis-cluster

# docker run -d --net redis --ip 172.11.0.95 -p 8005:6379 --name redis5redis-cluster

# docker run -d --net redis --ip 172.11.0.96 -p 8006:6379 --name redis6redis-cluster

有的人说开发一个端口给客户端使用就好了 就把 -p 和后面的端口去掉就好了

  • 接下来使用官方的 redis-trib.rb (linux直接安装ruby 启动就好了)

所以要下载ruby

这里直接

# docker pull ruby

然后通过构建Dockerfile制作redis集群管理


FROM ruby

ADD redis-3.0.7.gem /redis-3.0.7.gem

ADD redis-trib.rb /redis-trib.rb

这两个文件放在目录下

Redis-3.0.7.gem 基于国情要导入,可以直接去网上下载

如果不下载就不用导入

直接 gem install redis –version 3.0.7

就可以直接安装

去掉dockerfile 上面那一行

然后进入该目录

# docker build “ruby-redis” .
  • 启动 ruby-redis
# docker run --net=redis --ip 172.11.0.100--name ruby11 -i -d ruby-redis

要在同一个网络 redis 才能互连

  • 进入改ruby 容器

# docker exec -it ruby11 /bin/bash

安装redis-gem


# gem install -l redis-3.0.7.gem 或者

# gem install redis –version 3.0.7
  • 接下来 启动集群
# ./redis-trib.rb  create --replicas 1  172.11.0.91:6379172.11.0.92:6379 172.11.0.93:6379 172.11.0.94:6379 172.11.0.95:6379 172.11.0.96:6379

1表示 master 后面有一个 slave cluster

然后输入yes 就可以了

  • 随便登录一个节点测试连接集群测试
# cluster node

# cluster info

设置k-v 测试

切换结点测试

宿主机测试:

Docker ip 10.0.75.1

端口就是容器对外开放的端口

另一个是容器间端口使用

看不懂可以到我简书上,有图文! —— [ 简书 ]

相关实践学习
基于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
目录
相关文章
|
2月前
|
Ubuntu Linux Shell
(已解决)Linux环境—bash: wget: command not found; Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
(已成功解决)Linux环境报错—bash: wget: command not found;常见Linux发行版本,Linux中yum、rpm、apt-get、wget的区别;Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
460 68
(已解决)Linux环境—bash: wget: command not found; Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
|
22天前
|
Linux Docker 容器
Linux 中停止 Docker 服务报 warning 导致无法彻底停止问题如何解决?
在 Linux 系统中,停止 Docker 服务时遇到警告无法彻底停止的问题,可以通过系统管理工具停止服务、强制终止相关进程、检查系统资源和依赖关系、以及重置 Docker 环境来解决。通过以上步骤,能够有效地排查和解决 Docker 服务停止不彻底的问题,确保系统的稳定运行。
97 19
|
2月前
|
NoSQL 关系型数据库 MySQL
Linux安装jdk、mysql、redis
Linux安装jdk、mysql、redis
217 7
|
3月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
137 4
|
3月前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
106 2
|
3月前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
136 3
|
4月前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
891 3
|
4月前
|
Linux 开发工具 Docker
各个类linux服务器安装docker教程
各个类linux服务器安装docker教程
102 0
|
9天前
|
缓存 NoSQL 中间件
Redis,分布式缓存演化之路
本文介绍了基于Redis的分布式缓存演化,探讨了分布式锁和缓存一致性问题及其解决方案。首先分析了本地缓存和分布式缓存的区别与优劣,接着深入讲解了分布式远程缓存带来的并发、缓存失效(穿透、雪崩、击穿)等问题及应对策略。文章还详细描述了如何使用Redis实现分布式锁,确保高并发场景下的数据一致性和系统稳定性。最后,通过双写模式和失效模式讨论了缓存一致性问题,并提出了多种解决方案,如引入Canal中间件等。希望这些内容能为读者在设计分布式缓存系统时提供有价值的参考。感谢您的阅读!
Redis,分布式缓存演化之路