asp.net网站开发典型模块与实例精讲,国安中建建设集团网站,免费打广告平台有哪些,1v1网站建设Redis | 集群模式
随着互联网应用规模的不断扩大#xff0c;单一节点的数据库性能已经无法满足大规模应用的需求。为了提高数据库的性能和可扩展性#xff0c;分布式数据库成为了解决方案之一。Redis 作为一个高性能的内存数据库#xff0c;自然也有了自己的分布式部署方式…Redis | 集群模式
随着互联网应用规模的不断扩大单一节点的数据库性能已经无法满足大规模应用的需求。为了提高数据库的性能和可扩展性分布式数据库成为了解决方案之一。Redis 作为一个高性能的内存数据库自然也有了自己的分布式部署方式——Redis 集群模式。
1. 什么是 Redis 集群模式
Redis 集群模式是 Redis 数据库的一种分布式部署方式它通过数据分片Sharding将数据存储在多个节点上从而实现数据的水平拆分和负载均衡。每个节点负责处理其中一部分数据并支持主从复制以提供数据冗余和高可用性。
在 Redis 集群中数据被分成 16384 个槽slots每个槽对应一个节点。数据根据一定的规则通常是键的哈希值被映射到不同的槽上从而实现分布式存储。当集群中添加或移除节点时Redis 会自动重新分片数据无需手动迁移数据大大简化了扩容和缩容操作。
2. Redis 集群的特点
高性能和低延迟由于 Redis 是一个内存数据库它能够提供高性能和低延迟的读写操作适用于对响应速度有要求的应用场景。高可用性Redis 集群支持主从复制每个节点都有一个或多个从节点用于数据备份。当主节点失效时从节点可以自动切换成主节点保障数据的可用性。自动分片和负载均衡Redis 集群在添加或移除节点时会自动重新分片数据无需手动干预。客户端可以直接连接到集群中的任意节点并根据键的哈希值将请求发送到对应的节点实现负载均衡。无中心节点Redis 集群没有单点故障没有中心节点所有节点都是平等的减少了集群的单点故障风险。
3. 配置
启动参数方式
--cluster-enabled yes开启集群cluster-node-timeout 15000集群节点间超时时间--masterauth master-node-password主节点密码
配置文件方式
redis.conf
cluster-enabled yes
cluster-node-timeout 15000
masterauth master_node_password4. 演示
docker-compose.yaml
version: 3.8
networks:network:ipam:driver: defaultconfig:- subnet: 192.168.200.0/24
services:redis1:container_name: redis1image: redis:7.0networks:network:ipv4_address: 192.168.200.2command:- redis-server- --cluster-enabled yes- --cluster-node-timeout 15000- --requirepass 123456- --masterauth 123456- --bind * -::*redis2:container_name: redis2image: redis:7.0networks:network:ipv4_address: 192.168.200.3command:- redis-server- --cluster-enabled yes- --cluster-node-timeout 15000- --requirepass 123456- --masterauth 123456- --bind * -::*redis3:container_name: redis3image: redis:7.0networks:network:ipv4_address: 192.168.200.4command:- redis-server- --cluster-enabled yes- --cluster-node-timeout 15000- --requirepass 123456- --masterauth 123456- --bind * -::*redis4:container_name: redis4image: redis:7.0networks:network:ipv4_address: 192.168.200.5command:- redis-server- --cluster-enabled yes- --cluster-node-timeout 15000- --requirepass 123456- --masterauth 123456- --bind * -::*redis5:container_name: redis5image: redis:7.0networks:network:ipv4_address: 192.168.200.6command:- redis-server- --cluster-enabled yes- --cluster-node-timeout 15000- --requirepass 123456- --masterauth 123456- --bind * -::*redis6:container_name: redis6image: redis:7.0networks:network:ipv4_address: 192.168.200.7command:- redis-server- --cluster-enabled yes- --cluster-node-timeout 15000- --requirepass 123456- --masterauth 123456- --bind * -::*启动docker compose up创建集群进入容器docker exec -it redis1 bashredis-cli \
-a 123456 \
--cluster \
create \
192.168.200.2:6379 192.168.200.3:6379 192.168.200.4:6379 \
192.168.200.5:6379 192.168.200.6:6379 192.168.200.7:6379 \
--cluster-replicas 1进入集群操作 注意一定要添加-c参数。 redis-cli -c -a 123456测试127.0.0.1:6379 set name yimt
- Redirected to slot [5798] located at 192.168.200.7:6379
OK
192.168.200.7:6379 get name
yimt