以下是 Redis 主从复制和分布式部署的详细方法和步骤:
1.Redis 主从复制部署
架构
主从复制是 Redis 最基本的分布式机制,通过将数据从主节点(Master)复制到多个从节点(Slave),实现读写分离和数据备份。
部署步骤
- 安装 Redis
• 安装编译环境(如make
和gcc
)。
• 下载并编译 Redis:
wget http://download.redis.io/releases/redis-7.2.5.tar.gztar xvf redis-7.2.5.tar.gzcd redis-7.2.5/make && make install```2. 配置主从节点• 主节点配置(`redis.conf`):```confport 6379bind 0.0.0.0```• 从节点配置(`redis.conf`):```confport 6380bind 0.0.0.0slaveof 127.0.0.1 6379```3. 启动 Redis 实例• 启动主节点:```bashredis-server /path/to/master_redis.conf```• 启动从节点:```bashredis-server /path/to/slave_redis.conf```4. 验证主从复制• 在主节点执行写操作,从节点会自动同步数据。---2\.Redis Sentinel(哨兵模式)部署架构
Sentinel 是 Redis 的高可用性解决方案,基于主从复制,增加了哨兵节点用于监控和自动故障转移。部署步骤1. 配置主从复制(同上)。2. 配置 Sentinel• 创建`sentinel.conf`文件:```confport 26379daemonize yespidfile /var/run/redis-sentinel.pidlogfile "/var/log/redis-sentinel.log"dir /tmpsentinel myid 1sentinel monitor mymaster 127.0.0.1 6379 2sentinel auth-pass mymaster <password>sentinel down-after-milliseconds mymaster 5000sentinel parallel-syncs mymaster 1sentinel failover-timeout mymaster 60000```3. 启动 Sentinel 实例• 启动多个 Sentinel 实例(至少 3 个):```bashredis-sentinel /path/to/sentinel.conf```4. 验证故障转移• 关闭主节点,Sentinel 会自动将从节点提升为主节点。---3\.Redis Cluster(集群模式)部署架构
Redis Cluster 是 Redis 的原生分布式方案,支持数据分片和高可用性。部署步骤1. 安装 Redis• 同主从复制的安装步骤。2. 配置集群节点• 创建多个节点配置文件(`redis.conf`):```confport <port>daemonize yescluster-enabled yescluster-config-file nodes-<port>.confcluster-node-timeout 5000appendonly yes```3. 启动节点• 启动每个节点的 Redis 实例:```bashredis-server /path/to/redis.conf```4. 创建集群• 使用`redis-cli`创建集群:```bashredis-cli --cluster create <node1_ip>:<port1> <node2_ip>:<port2> ... --cluster-replicas 1```• 示例:```bashredis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:8000 127.0.0.1:8001 127.0.0.1:9000 127.0.0.1:9001 --cluster-replicas 1```5. 验证集群状态• 连接到任意节点,执行`CLUSTER INFO`和`CLUSTER NODES`查看集群状态。---注意事项• 数据一致性:主从复制和集群模式都可能存在数据同步延迟,导致短暂的数据不一致。• 故障转移时间:Sentinel 和 Cluster 的故障转移需要一定时间,可能会导致短暂的服务中断。• 资源分配:合理分配主从节点和哨兵节点的资源,确保系统的高可用性和性能。