使用 Docker Compose 部署 Redis Cluster 集群,轻松搭建高可用分布式缓存

Redis Cluster(Redis 集群)是 Redis 分布式解决方案的一部分,它旨在提供高可用性、高性能和横向扩展的功能。Redis Cluster 能够将多个 Redis 节点组合成一个分布式集群,实现数据分片和负载均衡,从而确保在大规模应用场景下的稳定性和可靠性。我们这篇文章了将为大家介绍如何使用 docker-compose 搭建 redis 集群。

Redis Cluster 介绍

  • Redis Cluster 介绍将数据划分为多个槽(slot),默认情况下共有 16384 个槽。每个 Redis 节点负责处理其中的一部分槽。当客户端请求访问某个键时,Redis Cluster 会根据键的哈希值决定它应该位于哪个槽,并将请求转发到负责该槽的 Redis 节点上。

docker-compose

创建一个 redis-cluster 的文件夹,在其中在创建一个 redis6479 的一个文件夹,在 redis6479 中创建 docker-compose.yml 文件,文件如下:

version: '3.3'
services:
  redis6479:
    network_mode: 'host'
    image: redis
    container_name: redis6479
    restart: always
    logging:
      driver: 'json-file'
      options:
        max-size: '5g'
    volumes:
      - ./data:/data
      - ./redis.conf:/usr/local/etc/redis/redis.conf
      - ./logs:/logs
    command: redis-server /usr/local/etc/redis/redis.conf

我们在这network用的是host模式,redis节点之间通信直接用宿主机的ip即可 我们在这还有一个关于日志的配置

    logging:
      driver: 'json-file'
      options:
        max-size: '5g'

我们的从节点一直会检测主节点的状态,一直输出日志,所以我们在这配置下日志的大小,不然我们的服务器很快就会被日志文件占用很多的磁盘

在 redis6479 下创建 redis.conf 文件,文件在结尾


创建脚本部署其他节点

在redis-cluster 下创建脚本 build.sh

#!/bin/bash
cd /home/xiuji/docker/redis-cluster;
cp -r redis6479 redis6579;
sed -i "s/6479/6579/g" /home/xiuji/docker/redis-cluster/redis6579/docker-compose.yml;
sed -i "s/6479/6579/g" /home/xiuji/docker/redis-cluster/redis6579/redis.conf;
cd /home/xiuji/docker/redis-cluster/redis6579;
sudo rm -rf data;
sudo rm -rf logs;
docker-compose up -d;


cd /home/xiuji/docker/redis-cluster;
cp -r redis6479 redis6679;
sed -i "s/6479/6679/g" /home/xiuji/docker/redis-cluster/redis6679/docker-compose.yml;
sed -i "s/6479/6679/g" /home/xiuji/docker/redis-cluster/redis6679/redis.conf;
cd /home/xiuji/docker/redis-cluster/redis6679;
sudo rm -rf data;
sudo rm -rf logs;
docker-compose up -d;

cd /home/xiuji/docker/redis-cluster;
cp -r redis6479 redis6779;
sed -i "s/6479/6779/g" /home/xiuji/docker/redis-cluster/redis6779/docker-compose.yml;
sed -i "s/6479/6779/g" /home/xiuji/docker/redis-cluster/redis6779/redis.conf;
cd /home/xiuji/docker/redis-cluster/redis6779;
sudo rm -rf data;
sudo rm -rf logs;
docker-compose up -d;

cd /home/xiuji/docker/redis-cluster;
cp -r redis6479 redis6879;
sed -i "s/6479/6879/g" /home/xiuji/docker/redis-cluster/redis6879/docker-compose.yml;
sed -i "s/6479/6879/g" /home/xiuji/docker/redis-cluster/redis6879/redis.conf;
cd /home/xiuji/docker/redis-cluster/redis6879;
sudo rm -rf data;
sudo rm -rf logs;
docker-compose up -d;

cd /home/xiuji/docker/redis-cluster;
cp -r redis6479 redis6979;
sed -i "s/6479/6979/g" /home/xiuji/docker/redis-cluster/redis6979/docker-compose.yml;
sed -i "s/6479/6979/g" /home/xiuji/docker/redis-cluster/redis6979/redis.conf;
cd /home/xiuji/docker/redis-cluster/redis6979;
sudo rm -rf data;
sudo rm -rf logs;
docker-compose up -d;

创建好之后给脚本可执行权限,我者直接简单粗暴

chmod -R 777 build.sh

执行脚本

./build.sh

执行成功后我们可以看到多了5个文件夹

使用 Docker Compose 部署 Redis Cluster 集群,轻松搭建高可用分布式缓存
_20230801225338.png

查看容器

docker ps -a | grep ‘redis’

使用 Docker Compose 部署 Redis Cluster 集群,轻松搭建高可用分布式缓存
_20230801225458.png

可以看到,我们的6个节点已经全部启动了

创建集群

rediscluster默认最少三个主节点,我们在这启动了6个节点,我们创建一个3主3从的集群

在服务器上执行集群创建命令

redis-cli –cluster create 192.168.10.108:6479 192.168.10.108:6579 192.168.10.108:6679 192.168.10.108:6779 192.168.10.108:6879 192.168.10.108:6979 –cluster-replicas 1 -a ‘xj2022’

–cluster-replicas 1:每个主节点下的从节点的数量

-a ‘xj2022’ redis有密码(所有redis设置相同的密码),如果没有密码,则不需要这个参数

执行完之后会出现如下页面

使用 Docker Compose 部署 Redis Cluster 集群,轻松搭建高可用分布式缓存
_20230801230123.png

这块了可能会比较久,我们先看会ai美女耐心等待一会


使用 Docker Compose 部署 Redis Cluster 集群,轻松搭建高可用分布式缓存



使用 Docker Compose 部署 Redis Cluster 集群,轻松搭建高可用分布式缓存



使用 Docker Compose 部署 Redis Cluster 集群,轻松搭建高可用分布式缓存




创建完成之后我们就可以使用如下命令连接到rediscluster 集群了

redis-cli -c -h 192.168.10.108 -p 6479 -a ‘xj2021’  –raw

查看集群状态

cluster nodes

cluster info

测试读写是否正常

set xj ‘修己’

get xj

到此,我们3主3从的cluster集群已经部署完成了

总结

通过 Docker Compose,我们可以快速搭建 Redis 集群,实现高可用性和高性能的分布式缓存。这种部署方式不仅方便,而且易于扩展。希望本文对您理解如何使用 Docker Compose 部署 Redis 集群有所帮助。如果您对 Redis 集群的更多功能和高级配置感兴趣,可以深入研究 Redis 官方文档。https://redis.io/

谢谢阅读!如果您有任何问题或建议,欢迎在评论区留言。



原文始发于微信公众号(修己xj):使用 Docker Compose 部署 Redis Cluster 集群,轻松搭建高可用分布式缓存

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/168519.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!