Docker 搭建redis集群

ゝ一纸荒年。 2022-09-02 14:58 338阅读 0赞

文章目录

  • Docker 搭建redis集群

Docker 搭建redis集群

a

六个Redis实例的配置文件:
redis.conf

  1. port 7000
  2. cluster-enabled yes
  3. cluster-config-file nodes.conf
  4. cluster-node-timeout 5000
  5. appendonly yes
  6. /opt/redis
  7. /7000/redis.conf
  8. /7001/redis.conf
  9. /7002/redis.conf
  10. /7003/redis.conf
  11. /7004/redis.conf
  12. /7005/redis.conf
  13. mkdir /opt/redis
  14. cd /opt/redis
  15. mkdir 7000 7001 7002 7003 7004 7005
  16. cat <<EOF >7000/redis.conf port 7000 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes EOF
  17. cat <<EOF >7001/redis.conf port 7001 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes EOF
  18. cat <<EOF >7002/redis.conf port 7002 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes EOF
  19. cat <<EOF >7003/redis.conf port 7003 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes EOF
  20. cat <<EOF >7004/redis.conf port 7004 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes EOF
  21. cat <<EOF >7005/redis.conf port 7005 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes EOF

先启动6个redis实例

  1. docker run -d --name redis7000 \
  2. -v /opt/redis/7000/redis.conf:/redis.conf \
  3. --net=host \
  4. --restart=always \
  5. redis \
  6. redis-server /redis.conf
  7. docker run -d --name redis7001 \
  8. -v /opt/redis/7001/redis.conf:/redis.conf \
  9. --net=host \
  10. --restart=always \
  11. redis \
  12. redis-server /redis.conf
  13. docker run -d --name redis7002 \
  14. -v /opt/redis/7002/redis.conf:/redis.conf \
  15. --net=host \
  16. --restart=always \
  17. redis \
  18. redis-server /redis.conf
  19. docker run -d --name redis7003 \
  20. -v /opt/redis/7003/redis.conf:/redis.conf \
  21. --net=host \
  22. --restart=always \
  23. redis \
  24. redis-server /redis.conf
  25. docker run -d --name redis7004 \
  26. -v /opt/redis/7004/redis.conf:/redis.conf \
  27. --net=host \
  28. --restart=always \
  29. redis \
  30. redis-server /redis.conf
  31. docker run -d --name redis7005 \
  32. -v /opt/redis/7005/redis.conf:/redis.conf \
  33. --net=host \
  34. --restart=always \
  35. redis \
  36. redis-server /redis.conf

执行命令配置集群

  1. # 进入容器执行集群配置命令
  2. docker exec -it redis7000 \
  3. redis-cli --cluster create \
  4. 192.168.64.150:7000 192.168.64.150:7001 \
  5. 192.168.64.150:7002 192.168.64.150:7003 \
  6. 192.168.64.150:7004 192.168.64.150:7005 \
  7. --cluster-replicas 1

查看集群信息

  1. docker exec -it redis7000 redis-cli -c -p 7000
  2. cluster info
  3. cluster nodes

存数据

  1. docker exec -it redis7000 redis-cli -c -p 7000
  2. # 7002
  3. set a aaaaaaaaaaaaa
  4. # 7000
  5. set b bbbbbbbbbbb
  6. # 7001
  7. set c cccccccccccccccc

spring redis api

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-data-redis</artifactId>
  4. </dependency>
  5. spring:
  6. redis:
  7. cluster:
  8. nodes:
  9. - 192.168.64.150:7000
  10. - 192.168.64.150:7001
  11. - 192.168.64.150:7002
  12. - 192.168.64.150:7003
  13. - 192.168.64.150:7004
  14. - 192.168.64.150:7005
  15. @Autowired
  16. private RedisConnectionFactory connectionFactory;
  17. public void test() {
  18. RedisClusterConnection c = connectionFactory.getClusterConnection();
  19. for (int i = 0; i < 100; i++) {
  20. c.set(("k"+i).getBytes(StandardCharsets.UTF_8),
  21. ("v"+i).getBytes(StandardCharsets.UTF_8));
  22. }
  23. }
  24. @Autowired
  25. @Qualifier("stringRedisTemplate")
  26. private RedisTemplate t;
  27. public void test() {
  28. ValueOperations<String, Object> o = t.opsForValue();
  29. o.set("hhhh", "vvvv");
  30. o.set("nnnn", "gggg");
  31. }

发表评论

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

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

相关阅读

    相关 Dockerredis

    Docker搭建redis 1. 前言 之前介绍了用docker来搭建redis主从环境,但这只是对数据添加了从库备份(主从复制),当主库down掉的时候,从库是不会自动

    相关 dockerredis

    Redis 集群介绍 1.RedisCluster: 官方推荐,没有中心节点 。(主节点不是中心节点) 2.Codis:360推出的,中间件产品,存在中心节点。 3.Tw