Docker与Redis集群搞基(需注意的)-yellowcong

2024-01-04 12:30

本文主要是介绍Docker与Redis集群搞基(需注意的)-yellowcong,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我在docker中安装了redis的集群,本来想着连接应该没有问题的,但是集群的时候连接不上, 单独连接的时候,能连接的上,bind的ip是容器的ip,一点毛病都没有,外网就是连接不上容器的集群,但是宿主机通过客户端可以连接上集群,而且外网能连接集群的任何节点,但是连接不了集群,菊花非常的疼啊,但是不通过docker(直接搭建在linux虚拟机上),同样的操作,可以访问集群.(PS 在docker下搭建有问题,由于容器和物理机不在一个网段,导致物理机访问不了容器的redis服务)

1、容器中搭建集群

1.1端口的映射

可以看到端口一一对应,我怀疑,就是映射的是0.0.0.0ip,应该修改端口映射,应该映射为主机ip:port

#原来 的配置方式
docker run -it \
-p 7001:7001 \
-p 7002:7002 \
-p 7003:7003 \
-p 7004:7004 \
-p 7005:7005 \
-p 7006:7006 \
--name redis-cluster \
yellowcong/redis-cluster:latest

这里写图片描述

1.2服务器端访问容器

大家可以看到,我连接的ip是宿主机的ip,而且也可以看到,是容器的集群ip
这里写图片描述

1.3服务启动脚本

#!/bin/bash

echo 'start servier'redis-server /usr/local/redis/redis-4.0.2/redis_cluster/7001/redis.conf
redis-server /usr/local/redis/redis-4.0.2/redis_cluster/7002/redis.conf
redis-server /usr/local/redis/redis-4.0.2/redis_cluster/7003/redis.conf
redis-server /usr/local/redis/redis-4.0.2/redis_cluster/7004/redis.conf
redis-server /usr/local/redis/redis-4.0.2/redis_cluster/7005/redis.conf
redis-server /usr/local/redis/redis-4.0.2/redis_cluster/7006/redis.confecho 'redis is start now'

这里写图片描述

1.4关闭脚本

#!/bin/bash

echo 'stop service 'redis-cli -h 172.17.97.2 -p 7001 shutdown
redis-cli -h 172.17.97.2 -p 7002 shutdown
redis-cli -h 172.17.97.2 -p 7003 shutdown
redis-cli -h 172.17.97.2 -p 7004 shutdown
redis-cli -h 172.17.97.2 -p 7005 shutdown
redis-cli -h 172.17.97.2 -p 7006 shutdown

这里写图片描述

1.5服务端口

redis服务器端口和eth0网卡端口一致
这里写图片描述

集群也没毛病
这里写图片描述

不能连接的原因

bind只能让redis从哪一张网卡来访问redis,所以 我们设定的是容器的ip网段,而我们的宿主机是和容器,是通过桥接,所以是一个网段的,而物理机和虚拟机 是一个网段的,物理机和容器不在一个网段所以访问不了容器里面的redis

#查看监听端口,监听的端口是172网段的,所以导致我们使用192的网段,就是调用不了
ps -aux |grep redis 

这里写图片描述

这篇关于Docker与Redis集群搞基(需注意的)-yellowcong的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/569342

相关文章

Redis Pipeline(管道) 详解

《RedisPipeline(管道)详解》Pipeline管道是Redis提供的一种批量执行命令的机制,通过将多个命令一次性发送到服务器并统一接收响应,减少网络往返次数(RTT),显著提升执行效率... 目录Redis Pipeline 详解1. Pipeline 的核心概念2. 工作原理与性能提升3. 核

redis过期key的删除策略介绍

《redis过期key的删除策略介绍》:本文主要介绍redis过期key的删除策略,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录第一种策略:被动删除第二种策略:定期删除第三种策略:强制删除关于big key的清理UNLINK命令FLUSHALL/FLUSHDB命

Redis消息队列实现异步秒杀功能

《Redis消息队列实现异步秒杀功能》在高并发场景下,为了提高秒杀业务的性能,可将部分工作交给Redis处理,并通过异步方式执行,Redis提供了多种数据结构来实现消息队列,总结三种,本文详细介绍Re... 目录1 Redis消息队列1.1 List 结构1.2 Pub/Sub 模式1.3 Stream 结

Windows Docker端口占用错误及解决方案总结

《WindowsDocker端口占用错误及解决方案总结》在Windows环境下使用Docker容器时,端口占用错误是开发和运维中常见且棘手的问题,本文将深入剖析该问题的成因,介绍如何通过查看端口分配... 目录引言Windows docker 端口占用错误及解决方案汇总端口冲突形成原因解析诊断当前端口情况解

SpringBoot中配置Redis连接池的完整指南

《SpringBoot中配置Redis连接池的完整指南》这篇文章主要为大家详细介绍了SpringBoot中配置Redis连接池的完整指南,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以... 目录一、添加依赖二、配置 Redis 连接池三、测试 Redis 操作四、完整示例代码(一)pom.

Redis在windows环境下如何启动

《Redis在windows环境下如何启动》:本文主要介绍Redis在windows环境下如何启动的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Redis在Windows环境下启动1.在redis的安装目录下2.输入·redis-server.exe

Redis实现延迟任务的三种方法详解

《Redis实现延迟任务的三种方法详解》延迟任务(DelayedTask)是指在未来的某个时间点,执行相应的任务,本文为大家整理了三种常见的实现方法,感兴趣的小伙伴可以参考一下... 目录1.前言2.Redis如何实现延迟任务3.代码实现3.1. 过期键通知事件实现3.2. 使用ZSet实现延迟任务3.3

Redis分片集群的实现

《Redis分片集群的实现》Redis分片集群是一种将Redis数据库分散到多个节点上的方式,以提供更高的性能和可伸缩性,本文主要介绍了Redis分片集群的实现,具有一定的参考价值,感兴趣的可以了解一... 目录1. Redis Cluster的核心概念哈希槽(Hash Slots)主从复制与故障转移2.

Docker镜像修改hosts及dockerfile修改hosts文件的实现方式

《Docker镜像修改hosts及dockerfile修改hosts文件的实现方式》:本文主要介绍Docker镜像修改hosts及dockerfile修改hosts文件的实现方式,具有很好的参考价... 目录docker镜像修改hosts及dockerfile修改hosts文件准备 dockerfile 文

Docker镜像pull失败两种解决办法小结

《Docker镜像pull失败两种解决办法小结》有时候我们在拉取Docker镜像的过程中会遇到一些问题,:本文主要介绍Docker镜像pull失败两种解决办法的相关资料,文中通过代码介绍的非常详细... 目录docker 镜像 pull 失败解决办法1DrQwWCocker 镜像 pull 失败解决方法2总