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

相关文章

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

HDFS—集群扩容及缩容

白名单:表示在白名单的主机IP地址可以,用来存储数据。 配置白名单步骤如下: 1)在NameNode节点的/opt/module/hadoop-3.1.4/etc/hadoop目录下分别创建whitelist 和blacklist文件 (1)创建白名单 [lytfly@hadoop102 hadoop]$ vim whitelist 在whitelist中添加如下主机名称,假如集群正常工作的节

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3

禅道Docker安装包发布

禅道Docker安装包发布 大家好, 禅道Docker安装包发布。 一、下载地址 禅道开源版:   /dl/zentao/docker/docker_zentao.zip  备用下载地址:https://download.csdn.net/download/u013490585/16271485 数据库用户名: root,默认密码: 123456。运行时,可以设置 MYSQL_ROOT_P

Redis中使用布隆过滤器解决缓存穿透问题

一、缓存穿透(失效)问题 缓存穿透是指查询一个一定不存在的数据,由于缓存中没有命中,会去数据库中查询,而数据库中也没有该数据,并且每次查询都不会命中缓存,从而每次请求都直接打到了数据库上,这会给数据库带来巨大压力。 二、布隆过滤器原理 布隆过滤器(Bloom Filter)是一种空间效率很高的随机数据结构,它利用多个不同的哈希函数将一个元素映射到一个位数组中的多个位置,并将这些位置的值置

一种改进的red5集群方案的应用、基于Red5服务器集群负载均衡调度算法研究

转自: 一种改进的red5集群方案的应用: http://wenku.baidu.com/link?url=jYQ1wNwHVBqJ-5XCYq0PRligp6Y5q6BYXyISUsF56My8DP8dc9CZ4pZvpPz1abxJn8fojMrL0IyfmMHStpvkotqC1RWlRMGnzVL1X4IPOa_  基于Red5服务器集群负载均衡调度算法研究 http://ww

Lua 脚本在 Redis 中执行时的原子性以及与redis的事务的区别

在 Redis 中,Lua 脚本具有原子性是因为 Redis 保证在执行脚本时,脚本中的所有操作都会被当作一个不可分割的整体。具体来说,Redis 使用单线程的执行模型来处理命令,因此当 Lua 脚本在 Redis 中执行时,不会有其他命令打断脚本的执行过程。脚本中的所有操作都将连续执行,直到脚本执行完成后,Redis 才会继续处理其他客户端的请求。 Lua 脚本在 Redis 中原子性的原因