• docker——redis5.0构建的redis-cluster环境


    摘要

    在大型的系统中数据库为整个系统的基础设施。在系统的设计中尤为重要,一般在大型的项目的中redis的配置都不是单点的。一般设计redis的高可用集群架构等。如果在生产环境中构建一个的这样的架构采用原生的安装配置方式比较复杂,本博文使用docker的方式来是生产环境下的redis高可用集群环境。帮助大家在生产环境中能够快速的获取redis集群的一种方式。

    一、redis-cluster集群环境构建

    1.1 环境配置准备

    • 1 安装docker(版本2.0 或者3.0)
    • 2 下载好redis5.0的镜像imaeg redis:5.0(版本) 其他版本有差别。
    • 3 配置好docker-compose
    • 4 配置构建的相关redis-cluster文件目录

    1.2 redis-cluster的主从配置文件

    1.2.1 修改 redis.conf

    1. protected-mode no
    2. daemonize no
    3. port $REDIS_PORT
    4. appendonly yes
    5. cluster-enabled yes
    6. cluster-config-file nodes-6379.conf
    7. cluster-node-timeout 15000
    8. cluster-announce-ip 20.1.206.131 # 你的本机的ip

    1.2.2 Dockerfile 

    1. FROM redis:5.0.12
    2. COPY redis.conf /usr/local/etc/redis/redis.conf
    3. COPY start.sh /start.sh
    4. RUN chmod 777 /start.sh

    1.2.3 start.sh 

    sed -i 's/$REDIS_PORT/'+$REDIS_PORT+'/g' /usr/local/etc/redis/redis.conf

    1.2.4 docker-compose.yml

    1. version: '2'
    2. services:
    3. redis-9000:
    4. image: redis-cluster:latest
    5. container_name: redis-9000
    6. network_mode: host
    7. restart: always
    8. environment:
    9. - REDIS_PORT=9000
    10. privileged: true
    11. redis-9001:
    12. image: redis-cluster:latest
    13. container_name: redis-9001
    14. network_mode: host
    15. restart: always
    16. environment:
    17. - REDIS_PORT=9001
    18. privileged: true
    19. redis-9002:
    20. image: redis-cluster:latest
    21. container_name: redis-9002
    22. network_mode: host
    23. restart: always
    24. environment:
    25. - REDIS_PORT=9002
    26. privileged: true
    27. redis-9003:
    28. image: redis-cluster:latest
    29. container_name: redis-9003
    30. network_mode: host
    31. restart: always
    32. environment:
    33. - REDIS_PORT=9003
    34. privileged: true
    35. redis-9004:
    36. image: redis-cluster:latest
    37. container_name: redis-9004
    38. network_mode: host
    39. restart: always
    40. environment:
    41. - REDIS_PORT=9004
    42. privileged: true
    43. redis-9005:
    44. image: redis-cluster:latest
    45. container_name: redis-9005
    46. network_mode: host
    47. restart: always
    48. environment:
    49. - REDIS_PORT=9005
    50. privileged: true
    51. redis-9006:
    52. image: redis-cluster:latest
    53. container_name: redis-9006
    54. network_mode: host
    55. restart: always
    56. environment:
    57. - REDIS_PORT=9006
    58. privileged: true

    1.3 redis-cluster的构建

    1. 1 、docker build -t redis-cluster . # 构建redis 镜像 , 注意命令后面有个小数点,表示当前目录查找Dockerfile
    2. 2、docker-compose up -d
    3. # 启动集群,注意改成自己的虚拟机的ip
    4. 3、docker run -it --rm redis:5.0.12 redis-cli -h 本机ip -p 7000 --cluster create 本机ip:7000 本机ip:7001 本机ip:7002 本机ip:7003 本机ip:7004 本机ip:7005 --cluster-replicas 1
    5. 4、查看集群信息 docker run -it --rm redis:5.0.12 redis-cli -h 本机ip -p 7000 info replication

    1.4 验证集群

    博文参考

    https://www.jianshu.com/p/b050776b6049

  • 相关阅读:
    springboot基于web的在线问答社区系统设计与实现毕业设计源码061628
    死锁的原因及解决方法
    小程序day02
    第0章 基础问题(2):树相关的问题(主要是二叉树)
    js中添加屏蔽F12 审查元素、屏蔽开发者工具、屏蔽右键菜单、屏蔽剪切、屏蔽选中操作
    使用 BERT 进行文本分类 (03/3)
    HUAWEI华为笔记本MateBook 14 I5 独显(KLV-W19)原装出厂Windows10系统1809
    在IntelliJ IDEA 中安装阿里P3C以及使用指南
    前端面试话术集锦第 16 篇:高频考点(前端监控 & UDP知识点)
    cesium 实体无法拾取
  • 原文地址:https://blog.csdn.net/weixin_41605937/article/details/127010197