redis配置集群

本文详细介绍了如何配置和管理Redis集群,包括规划网络、创建和配置节点、启动集群、测试集群状态、添加和删除节点、理解slots以及解决缓存穿透、击穿和雪崩问题。内容覆盖了从基础配置到高级应用,是学习和实践Redis集群的实用指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、配置集群所需的环境

1.1  规划网络

1.2 创建 Redis 节点主目录

1.3 创建6个节点目录

1.4 将 redis.conf 拷贝到这六个目录中

1.5 配置5个的redis.conf文件

二、启动集群

2.1 启动6个redis

2.2 创建redis的集群

2.3 使用redis-cli连接redis集群

三、测试集群

3.1 检查集群的状态

3.2 添加主节点

 3.2.1 分配slots

3.3 配置从节点

3.4 删除节点

3.4.1 删除主节点

 3.4.2 删除从节点

3.5 故障检测

四、集群录入值

 五、什么是slots

六、集群优缺点

集群优点

集群缺点

七、redis相关应用问题

7.1 缓存穿透

7.1.1 缓存穿透问题描述:

7.1.2 缓存穿透解决方案:

7.2 缓存击穿

7.2.1 缓存击穿问题描述:

7.2.2 缓存击穿解决方案:

7.3 缓存雪崩

7.3.1 缓存雪崩问题描述:

7.3.2 缓存雪崩解决方案:


一、配置集群所需的环境

Redis集群至少需要3个节点,因为投票容错机制要求超过半数节点认为某个节点挂了该节点才是挂了,所以2个节点无法构成集群。

要保证集群的高可用,需要每个节点都有从节点,也就是备份节点

1.1  规划网络

规划6个IP地址分别是 7001、7002,7003、7004、7005,7006

1.2 创建 Redis 节点主目录

在redis的文件夹下创建redis_cluster 目录

[root@localhost redis]# mkdir redis_cluster

 图:

1.3 创建6个节点目录

[root@localhost redis_cluster]# mkdir  7001 7002 7003 7004 7005 7006

图: 

1.4 将 redis.conf 拷贝到这六个目录中

先在7001文件写入redistribution.conf文件

创建文件

[root@localhost 7001]# touch redis.conf

并且写入内容

include /usr/redis/bin/redis.conf
port 7001
dbfilename "dump_7001.rdb"
appendfilename "appendonly_7001.aof"
pidfile "/var/run/redis_7001.pid"
daemonize yes
logfile "/usr/redis/redis_cluster/7001/redis_err_7001.log"
bind 0.0.0.0
save 60 1
dir "/usr/redis/redis_cluster/7001"
appendonly yes
appendfsync always
protected-mode no

cluster-enabled yes
# 在不同的服务器 这个可以不要
cluster-config-file nodes-7001.conf
cluster-node-timeout 15000

 在把7001的文件拷贝到7002 7003 7004 7005 7006 文件夹里面

[root@localhost redis_cluster]# echo ./7002 ./7003 ./7004 ./7005 ./7006 | xargs -n 1 cp -v /usr/redis/redis_cluster/7001/redis.conf

1.5 配置5个的redis.conf文件

分别修改5个redis.conf的内容

分别进入5个文件夹的redistribution.conf

vim redis.conf

 使用vim的替换

:%s/被替换的/替换的(7002)/g

举例修改7003的redis.conf文件:

 

二、启动集群

集群配置一般不要设置密码

2.1 启动6个redis

/usr/redis/bin/redis-server /usr/redis/redis_cluster/7001/redis.conf
/usr/redis/bin/redis-server /usr/redis/redis_cluster/7002/redis.conf
/usr/redis/bin/redis-server /usr/redis/redis_cluster/7003/redis.conf
/usr/redis/bin/redis-server /usr/redis/redis_cluster/7004/redis.conf
/usr/redis/bin/redis-server /usr/redis/redis_cluster/7005/redis.conf
/usr/redis/bin/redis-server /usr/redis/redis_cluster/7006/redis.conf

 查看是否启动成功

[root@localhost redis_cluster]# ps -ef | grep redis

2.2 创建redis的集群

[root@localhost redis_cluster]# /usr/redis/bin/redis-cli  --cluster create  192.168.44.64:7001 192.168.44.64:7002 192.168.44.64:7003 192.168.44.64:7004 192.168.44.64:7005 192.168.44.64:7006 --cluster-replicas 1

 

 输入yes

成功

2.3 使用redis-cli连接redis集群

/usr/redis/bin/redis-cli -c -h 192.168.44.64 -p 7002

 

 查看集群的节点的信息 :cluster nodes

三、测试集群

3.1 检查集群的

### 如何在Nacos中配置和管理Redis集群 在微服务架构中,动态配置管理是系统灵活性和可维护性的关键。通过Nacos可以实现对Redis集群的动态配置管理[^1]。以下是关于如何在Nacos中配置和管理Redis集群的具体方法: #### 1. Nacos配置Redis集群的基本原理 Nacos支持多种配置管理方式,可以通过YAML或Properties文件定义配置项,并将这些配置推送到服务实例中。对于Redis集群,可以使用Nacos作为配置中心来存储Redis集群的相关信息(如地址、端口等),并动态更新这些配置[^5]。 #### 2. 配置文件示例 在Spring Cloud项目中,可以通过`application.yml`或`bootstrap.yml`文件配置Nacos与Redis集群的连接信息。以下是一个典型的配置示例: ```yaml server: port: 56010 spring: application: name: service1 cloud: nacos: config: server-addr: 127.0.0.1:8848,127.0.0.1:8849,127.0.0.1:8850 # Nacos集群地址 file-extension: yaml namespace: 0c74cab7-f503-4fa8-af6d-25a5b65f598c group: TEST_GROUP ext-config: - data-id: ext-config-redis.properties # Redis配置文件 group: GLOBAL_GROUP ``` 上述配置中,`ext-config-redis.properties`文件用于存储Redis集群的具体配置信息[^5]。 #### 3. Redis集群配置内容 在Nacos控制台中创建一个名为`ext-config-redis.properties`的配置文件,内容如下: ```properties redis.cluster.nodes=127.0.0.1:7000,127.0.0.1:7001,127.0.0.1:7002 redis.cluster.max-redirects=3 redis.timeout=5000 redis.password=your_redis_password ``` 以上配置指定了Redis集群的节点地址、最大重定向次数、超时时间以及密码(如果存在)。这些参数可以根据实际需求进行调整[^2]。 #### 4. 动态刷新配置 为了确保应用能够实时获取最新的Redis集群配置,可以在Nacos配置文件中设置`refresh=true`,以支持动态刷新功能。例如: ```yaml ext-config: - data-id: ext-config-refresh.properties group: REFRESH_GROUP refresh: true # 支持动态刷新 ``` 当Nacos中的配置发生变化时,应用会自动重新加载新的配置而无需重启服务。 #### 5. Docker环境下部署Nacos与Redis集群 在Docker环境中,可以分别启动Nacos和Redis集群。以下是一个简单的Docker命令示例,用于启动单例模式下的Nacos服务: ```bash docker run -d \ -p 8848:8848 \ --name nacos \ --env MODE=standalone \ --env SPRING_DATASOURCE_PLATFORM=mysql \ --env MYSQL_SERVICE_HOST=127.0.0.1 \ --env MYSQL_SERVICE_PORT=3306 \ --env MYSQL_SERVICE_DB_NAME=nacos_config \ --env MYSQL_SERVICE_USER=root \ --env MYSQL_SERVICE_PASSWORD=123456!@# \ --restart=always \ nacos/nacos-server:latest ``` 同时,可以通过Docker Compose或其他工具部署Redis集群[^4]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值