一文讲解Redis常见使用方式

embedded/2025/1/23 22:53:20/

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库进行连接,包含单机连接、哨兵、集群模式


http://www.ppmy.cn/embedded/156419.html

相关文章

阿九的python 爬虫进阶课18.3 学习笔记

文章目录 前言1. 爬取大标题2. 爬取小标题3. 证券栏下的标题4. 某篇文章里的具体内容 前言 网课链接&#xff1a;https://www.bilibili.com/video/BV1kV4y1576b/新浪财经网址&#xff1a;https://finance.sina.com.cn/需先下载库&#xff1a; conda install lxml布置爬取的一…

simulink入门学习01

文章目录 1.基本学习方法2.图形环境--模块和参数3.激活菜单---添加到模型3.1输入选项3.2添加到模型3.3更改运算3.4验证要求 4.乘以特定值--Gain模块4.1引入gain模块4.2更改增益参数4.3接入系统4.4大胆尝试 1.基本学习方法 今天突然想要学习这个simulink的相关知识&#xff0c;…

已知域名如何知道网站的ip

已知域名获取网站IP的方法如下&#xff1a; 1. 使用 ping 命令 Windows: 打开命令提示符&#xff0c;输入 ping example.com&#xff0c;查看返回的IP地址。macOS/Linux: 打开终端&#xff0c;输入 ping example.com&#xff0c;查看返回的IP地址。 2. 使用 nslookup 命令 …

从零创建一个 Django 项目

1. 准备环境 在开始之前&#xff0c;确保你的开发环境满足以下要求&#xff1a; 安装了 Python (推荐 3.8 或更高版本)。安装 pip 包管理工具。如果要使用 MySQL 或 PostgreSQL&#xff0c;确保对应的数据库已安装。 创建虚拟环境 在项目目录中创建并激活虚拟环境&#xff…

有哪些好用的大屏设计器项目

目录 商用 开源 data-v DataEase GoView DataRoom 这2年公司的大屏项目比较多,计划后续开发一套大屏设计器项目,调研下都有哪些商用和开源的大屏设计器。 商用 积木报表中关于大屏设计器的内容(jeecg):JeecgBoot 文档中心阿里云(DataV)文档链接DataV数据可视化(Da…

大数据学习(36)- Hive和YARN

&&大数据学习&& &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 承认自己的无知&#xff0c;乃是开启智慧的大门 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一下博主哦&#x1f91…

Flink Gauss CDC:深度剖析存量与增量同步的创新设计

目录 设计思路 1.为什么不直接用FlinkCDC要重写Flink Gauss CDC 2.存量同步的逻辑是什么 2.1、单主键的切片策略是什么 2.2、​​​​​复合主键作切片,怎么保证扫描到所有的数据 3、增量同步的逻辑是什么 4、存量同步结束之后如何无缝衔接增量同步 5、下游数据如何落…

《鸿蒙Next原生应用的独特用户体验之旅》

界面设计与交互方面 简洁性与一致性&#xff1a;iOS界面以简洁统一著称&#xff0c;而鸿蒙Next的界面设计同样主打简洁&#xff0c;各部件采用悬浮效果&#xff0c;营造出空间感&#xff0c;如天气App的展示更加逼真。安卓系统由于不同厂商的定制化程度较高&#xff0c;导致用户…