一文讲解Redis常见使用方式
1. 单机模式部署
适用场景:
• 开发和测试环境,或者对高可用性要求不高的小型项目。
部署步骤:
1. 拉取 Redis 镜像:
docker pull redis:latest
2. 运行 Redis 容器:
docker run -d --name redis-single -p 6379:6379 redis:latest
3. 配置持久化(可选):
如果需要持久化,将宿主机目录挂载到容器:
docker run -d --name redis-single \
-p 6379:6379 \
-v /path/to/data:/data \
redis:latest --save 60 1 --loglevel warning
--save 60 1:每 60 秒内如果有 1 次写操作就触发保存。
• 日志级别可调为 debug、verbose、notice、warning。
2. 主从模式部署
适用场景:
• 提高读性能(读写分离)和容灾能力的小型应用。
部署步骤:
1. 启动主节点:
docker run -d --name redis-master -p 6379:6379 redis:latest
2. 启动从节点:
启动从节点时指定主节点的 IP 地址和端口:
docker run -d --name redis-slave1 \
-p 6380:6379 \
redis:latest redis-server --replicaof <master-ip> 6379
3. 验证主从关系:
• 登录从节点容器:
docker exec -it redis-slave1 redis-cli
• 检查主从状态:
info replication
3. 哨兵模式部署
适用场景:
• 实现高可用 Redis 部署,自动完成主从切换。
部署步骤:
1. 启动主从节点:
按照主从模式启动主节点和从节点。
2. 启动哨兵节点:
• 创建哨兵配置文件(sentinel.conf):
sentinel monitor mymaster <master-ip> 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 10000
sentinel parallel-syncs mymaster 1
• 启动哨兵容器:
docker run -d --name redis-sentinel1 \
-v /path/to/sentinel.conf:/etc/redis/sentinel.conf \
redis:latest redis-sentinel /etc/redis/sentinel.conf
3. 添加多个哨兵(建议部署至少 3 个哨兵):
使用相同配置启动其他哨兵节点。
4. 验证高可用性:
停止主节点并观察哨兵的切换行为:
docker stop redis-master
docker logs redis-sentinel1
4. 集群模式部署
适用场景:
• 适合大规模分布式场景,支持高并发和海量数据存储。
部署步骤:
1. 启动 6 个 Redis 节点(3 主 3 从):
使用不同端口运行多个 Redis 实例:
docker run -d --name redis-node1 -p 7001:6379 redis:latest --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000 --appendonly yes
docker run -d --name redis-node2 -p 7002:6379 redis:latest --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000 --appendonly yes
docker run -d --name redis-node3 -p 7003:6379 redis:latest --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000 --appendonly yes
docker run -d --name redis-node4 -p 7004:6379 redis:latest --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000 --appendonly yes
docker run -d --name redis-node5 -p 7005:6379 redis:latest --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000 --appendonly yes
docker run -d --name redis-node6 -p 7006:6379 redis:latest --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000 --appendonly yes
2. 创建集群:
使用 redis-cli 创建集群:
docker exec -it redis-node1 redis-cli --cluster create <node1-ip>:7001 <node2-ip>:7002 <node3-ip>:7003 <node4-ip>:7004 <node5-ip>:7005 <node6-ip>:7006 --cluster-replicas 1
3. 验证集群状态:
redis-cli -c -p 7001 cluster info
总结
• 单机模式:开发测试环境,快速部署。
• 主从模式:简单的读写分离。
• 哨兵模式:中小型高可用场景。
• 集群模式:适合大规模高并发场景。
GO语言中采用go-redis库进行连接,包含单机连接、哨兵、集群模式