docker部署redis集群

矫情吗;* 2022-01-06 13:21 565阅读 0赞

首先创建几个文件夹

  1. mkdir -r /home/redis/redis_7001/redis_data
  2. mkdir -r /home/redis/redis_7002/redis_data
  3. mkdir -r /home/redis/redis_7003/redis_data
  4. mkdir -r /home/redis/redis_7004/redis_data
  5. mkdir -r /home/redis/redis_7005/redis_data
  6. mkdir -r /home/redis/redis_7006/redis_data
  7. vi /home/redis/redis_7001/redis_7001.conf
  8. vi /home/redis/redis_7002/redis_7002.conf
  9. vi /home/redis/redis_7003/redis_7003.conf
  10. vi /home/redis/redis_7004/redis_7004.conf
  11. vi /home/redis/redis_7005/redis_7005.conf
  12. vi /home/redis/redis_7006/redis_7006.conf

redis.conf内容,端口要依次修改

  1. #bind ip 外网访问
  2. port 7001
  3. protected-mode no
  4. #requirepass admin
  5. #masterauth admin
  6. daemonize no
  7. appendonly yes
  8. cluster-enabled yes
  9. cluster-node-timeout 15000
  10. cluster-config-file nodes.conf

**注意: 在执行redis-trib create —replicas的时候,redis的密码要配置删掉,否则会连不上提示 can not connect ip **

  1. version: '3.3'
  2. services:
  3. redis-7001:
  4. image: redis:latest
  5. container_name: redis-7001
  6. restart: always
  7. command: redis-server /usr/local/etc/redis/redis.conf
  8. ports:
  9. - "7001:7001"
  10. - "17001:17001"
  11. volumes:
  12. - /home/redis/redis_7001/redis_data:/data
  13. - /home/redis/redis_7001/redis_7001.conf:/usr/local/etc/redis/redis.conf
  14. redis-7002:
  15. image: redis:latest
  16. container_name: redis-7002
  17. restart: always
  18. command: redis-server /usr/local/etc/redis/redis.conf
  19. ports:
  20. - "7002:7002"
  21. - "17002:17002"
  22. volumes:
  23. - /home/redis/redis_7002/redis_data:/data
  24. - /home/redis/redis_7002/redis_7002.conf:/usr/local/etc/redis/redis.conf
  25. redis-7003:
  26. image: redis:latest
  27. container_name: redis-7003
  28. restart: always
  29. command: redis-server /usr/local/etc/redis/redis.conf
  30. ports:
  31. - "7003:7003"
  32. - "17003:17003"
  33. volumes:
  34. - /home/redis/redis_7003/redis_data:/data
  35. - /home/redis/redis_7003/redis_7003.conf:/usr/local/etc/redis/redis.conf
  36. redis-7004:
  37. image: redis:latest
  38. container_name: redis-7004
  39. restart: always
  40. command: redis-server /usr/local/etc/redis/redis.conf
  41. ports:
  42. - "7004:7004"
  43. - "17004:17004"
  44. volumes:
  45. - /home/redis/redis_7004/redis_data:/data
  46. - /home/redis/redis_7004/redis_7004.conf:/usr/local/etc/redis/redis.conf
  47. redis-7005:
  48. image: redis:latest
  49. container_name: redis-7005
  50. restart: always
  51. command: redis-server /usr/local/etc/redis/redis.conf
  52. ports:
  53. - "7005:7005"
  54. - "17005:17005"
  55. volumes:
  56. - /home/redis/redis_7005/redis_data:/data
  57. - /home/redis/redis_7005/redis_7005.conf:/usr/local/etc/redis/redis.conf
  58. redis-7006:
  59. image: redis:latest
  60. container_name: redis-7006
  61. restart: always
  62. command: redis-server /usr/local/etc/redis/redis.conf
  63. ports:
  64. - "7006:7006"
  65. - "17006:17006"
  66. volumes:
  67. - /home/redis/redis_7006/redis_data:/data
  68. - /home/redis/redis_7006/redis_7006.conf:/usr/local/etc/redis/redis.conf

部署cluster

  1. docker run --rm -it gavinmroy/redis-trib create --replicas 1 10.17.27.212:7001 10.17.27.212:7002 10.17.27.212:7003 10.17.27.212:7004 10.17.27.212:7005 10.17.27.212:7006
  2. --replicas 1 每个master1slave
  3. 6台机器,3master3slave,尽量自己让masterslave不在一台机器上
  4. docker run --rm -it gavinmroy/redis-trib check 10.17.27.212:7001

注意:如果再分配slot集群的时候,用的是内网分配,则java redis-cluster客户端用外网会连不上,报redis.clients.jedis.exceptions.JedisClusterMaxRedirectionsException: Too many Cluster redirections?的错,得用内网连接

发表评论

表情:
评论列表 (有 0 条评论,565人围观)

还没有评论,来说两句吧...

相关阅读