redis 的 redisbloom 想要修改兼容的端口为非 6379 但无效?
redis 的 redisbloom 想要修改兼容的端口为非 6379 但无效?
docker-compose.yaml
version: "3"
services:
redis:
container_name: rebloom2
restart: always
image: redislabs/rebloom:2.6.12
ports:
- "6377:6377"
volumes:
- ./volumes:/data # /usr/local/redis/data 是你宿主机的路径;/data 是容器内的路径,容器内的 redis 会把需要持久化的数据都保存到 /data 目录下
- ./redis.conf:/etc/redis/redis.conf # redis.conf 这个文件已经准备好了,可以放到这个路径,也可以自己修改,比如放到项目路径中
# 这个文件的地址,和你的 docker-compose.yaml 中的 /usr/local/redis/redis.conf:/etc/redis/redis.conf 冒号左边的要对应起来
# redis 支持两者持久化机制:RDB&AOF
# https://juejin.cn/post/6844903716290576392
appendonly yes
#default: 持久化文件
appendfilename "appendonly.aof"
#default: 每秒同步一次
appendfsync everysec
port 6377
# 绑定端口,不指定外网可能连不上服务器
bind 0.0.0.0
# maxmemory 100mb
# appendonly yes
# appendfilename "appendonly.aof"
# appendfsync everysec
我把默认端口改成 6377 之后,客户端连不上
╭─pon@T4GPU ~
╰─➤ iredis -h 127.0.0.1 -p 6377
Error while reading from 127.0.0.1:6377 : (104, 'Connection reset by peer') retrying... retry left: 2
Error while reading from 127.0.0.1:6377 : (104, 'Connection reset by peer') retrying... retry left: 1
iredis 1.13.2 (Python 3.10.12)
redis-server Unknown (Error while reading from 127.0.0.1:6377 : (104, 'Connection reset by peer'))
Home: https://iredis.io
Issues: https://iredis.io/issues
127.0.0.1:6377> exit
但是把 redis 的端口改成还是保留 6379,只是把 docker 映射端口改成 6377:6379
,客户端就可以连接成功!
如果 redisbloom 要如何修改 redis.conf 来修改兼容的端口?和标准的 redis 不一样?
标准的 redis 这样修改成 6377 是可以的
回复
1个回答

test
2024-06-19
问题排查
启动服务后 进入容器
docker exec -it rebloom2 /bin/bash
查看端口是否生效
apt-get install net-tools netstat -aon |grep 6377 (空) netstat -aon |grep 6379 (有值)
- 说明修改端口失败
- 查看 /etc/redis/redis.conf 已经修改过的
- docker 容器中执行 redis-server 提示: Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
查看 https://github.com/RedisBloom/RedisBloom/blob/master/Dockerfile 默认 redis-server 不带配置
CMD ["redis-server", "--loadmodule", "/usr/lib/redis/modules/redisbloom.so"]
最终结果
docker-compose.yaml 增加 command(最后一行)
version: "3" services: redis: container_name: rebloom2 restart: always image: redislabs/rebloom:2.6.12 ports: - "6377:6377" volumes: - ./volumes:/data # /usr/local/redis/data 是你宿主机的路径;/data 是容器内的路径,容器内的 redis 会把需要持久化的数据都保存到 /data 目录下 - ./redis.conf:/etc/redis/redis.conf # redis.conf 这个文件已经准备好了,可以放到这个路径,也可以自己修改,比如放到项目路径中 command: redis-server /etc/redis/redis.conf --loadmodule /usr/lib/redis/modules/redisbloom.so
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容