NodeJS操作Redis-Sentinel
NodeJS 访问 Redis-Sentinel
- 使用 Redis-Sentinel 之后,由于主节点可能会发生变化,所以我们不能直接操作主节点
- 只有 Redis-Sentinel 最清楚当前的主节点是谁, 所以我们应该通过 Redis-Sentinel 来操作主节点
要想通过 NodeJS 操作 Redis 主从的 Redis-Sentinel 只要通过操作 Redis-Sentinel 即可,因为 Redis 的主从是可能发生变化的,当主宕机之后Redis-Sentinel是会进行选举操作,所以如果你直接通过NodeJS操作主节点是不合适的,到时候它可能也不知道主节点是那个几点,Redis-Sentinel 是自动去选举主节点,说了这么多主要就是通过NodeJS操作Redis-Sentinel通过Redis-Sentinel去发送命令即可Redis-Sentinel会自动选举主节点,操作Redis-Sentinel主要由以下几步即可:
- 安装 redis-sentinel
- 导入 redis-sentinel
- 告诉 redis-sentinel 有哪些 sentinel 节点
- 填写一些额外的配置
- 告诉redis-sentinel主节点的名称是什么
- 连接redis-sentinel
- 通过redis-sentinel的连接对象操作Redis
如上步骤的实现:
- 安装 redis-sentinel
npm install redis-sentinel
- 导入 redis-sentinel
const sentinel = require('redis-sentinel');
- 告诉 redis-sentinel 有哪些 sentinel 节点
const endpoints = [
{host: '127.0.0.1', port: 26380},
{host: '127.0.0.1', port: 26381},
{host: '127.0.0.1', port: 26382},
];
- 填写一些额外的配置(博主这里的sentinel节点没有设置任何的密码这里就不需要设置任何内容如果你设置了就需要配置一下了)
const opts = {};
- 告诉redis-sentinel主节点的名称是什么
const masterName = 'mymaster';
- 连接redis-sentinel
const redisClient = sentinel.createClient(endpoints, masterName, opts);
- 通过redis-sentinel的连接对象操作Redis
redisClient.set('gender', 'man');
redisClient.get('gender', (err, val) => {
console.log(val);
});
最终代码:
// 1.导入redis-sentinel
const sentinel = require('redis-sentinel');
// 2.告诉redis-sentinel有哪些sentinel节点
const endpoints = [
{host: '127.0.0.1', port: 26380},
{host: '127.0.0.1', port: 26381},
{host: '127.0.0.1', port: 26382},
];
// 3.填写一些额外的配置
// Standard node_redis client options
const opts = {};
// 4.告诉redis-sentinel主节点的名称是什么
const masterName = 'mymaster';
// 5.连接redis-sentinel
const redisClient = sentinel.createClient(endpoints, masterName, opts);
// 6.通过redis-sentinel的连接对象操作Redis
redisClient.set('gender', 'man');
redisClient.get('gender', (err, val) => {
console.log(val);
});
然后我们目前的架构样式如下图所示:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具