当前位置: 首页 > news >正文

1.22Node.js 中操作 Redis

redis操作.详见 18.redis基本操作-CSDN博客

在 Node.js 中操作 Redis,通常使用 redis 这个 npm 包。

首先,你需要安装 redis 包。可以通过 npm 来安装:

npm install redis

基本使用

创建客户端

要开始与 Redis 交互,需要先创建一个客户端实例:

const redis = require('redis');
const client = redis.createClient();client.on('connect', () => {console.log('Connected to Redis');
});

默认情况下,createClient() 将尝试连接到运行在 127.0.0.1:6379 的 Redis 服务器。如果你的 Redis 服务器位于不同的主机或端口上,你可以传递相应的选项给 createClient() 方法。

设置和获取键值对
client.set('key', 'value', (err, reply) => {if (err) throw err;console.log(reply); // 输出 "OK"
});

获取键对应的值:

client.get('key', (err, reply) => {if (err) throw err;console.log(reply); // 输出 "value"
});
关闭客户端

当你完成与 Redis 的交互后,可以关闭客户端连接:

client.quit();

异步/等待支持

从某些版本开始,redis 包提供了对异步/等待的支持,这使得代码更易于阅读和编写。例如:

async function example() {await client.connect();const value = await client.set('key', 'value');console.log(value);const getValue = await client.get('key');console.log(getValue);
}

请注意,对于较新的版本(如 v4 及以上),redis 包引入了一些重大的变化,包括对 Promises 和 async/await 的原生支持。

五大数据结构实战

1. 字符串(String)
// 设置值(过期时间 60 秒)
await redis.set('user:1', JSON.stringify({ name: 'Alice', age: 30 }), 'EX', 60);// 获取值
const user = JSON.parse(await redis.get('user:1'));// 原子操作:计数器
await redis.incr('page_views'); // 自增 1
await redis.incrby('page_views', 5); // 自增 5
2. 哈希(Hash)
// 设置哈希字段
await redis.hset('user:2', 'name', 'Bob', 'age', 25);// 获取单个字段
const name = await redis.hget('user:2', 'name');// 获取所有字段
const user2 = await redis.hgetall('user:2'); // 返回 { name: 'Bob', age: '25' }
3. 列表(List)
// 左插入
await redis.lpush('tasks', 'task1', 'task2');// 右弹出(阻塞模式,超时 10 秒)
const task = await redis.brpop('tasks', 10);
4. 集合(Set)
// 添加成员
await redis.sadd('tags:post1', 'js', 'node', 'redis');// 获取所有成员
const tags = await redis.smembers('tags:post1');// 判断成员是否存在
const hasTag = await redis.sismember('tags:post1', 'js');

5. 有序集合(Sorted Set)

// 添加成员(分数表示热度)
await redis.zadd('trending_articles', 100, 'article1', 200, 'article2');// 获取热度最高的 10 篇文章
const topArticles = await redis.zrevrange('trending_articles', 0, 9, 'WITHSCORES');

 

错误处理

不要忘记为你的 Redis 客户端添加错误处理程序:

client.on('error', (err) => {console.error('Redis error:', err);
});

这将确保你能够捕获并处理任何可能出现的问题。

相关文章:

  • 信创 CDC 实战|国产数据库的数据高速通道:OceanBase 实时入仓 StarRocks
  • 408第二季 - 组成原理 - 指令的寻址方式
  • Linux 系统中,查询 JDK 的安装目录
  • uvicorn api:app --host 0.0.0.0 --port 7777容器运行失败
  • servlet前后端交互
  • TDengine 与开源可视化编程工具 Node-RED 集成
  • 使用 OpenCV 和传统机器学习实现工业开关状态识别
  • 智能群跃小助手发布说明
  • Happy-LLM-task3 :2.1 注意力机制 2 天
  • torchmd-net开源程序是训练神经网络潜力
  • 谷歌浏览器电脑版官方下载- Google Chrome官方网页版入口
  • 日志监控与日志分析工具:ELK栈、Fluentd
  • Unity——碰撞体如何随图片形状发生变化
  • langchain 开发实战
  • Android sdk 36沉浸式兼容性问题修复
  • 一生一芯 PA2 RTFSC
  • 20250620在Ubuntu20.04.6下编译KickPi的K7的Android14系统解决缺少libril.so.toc的问题
  • websocket入门到实战(详解websocket,实战聊天室,消息推送,springboot+vue)
  • C#上位机实现报警语音播报
  • 信任再造:跌倒检测算法如何让善意不再“自证”
  • 网站备案号如何查询/锦绣大地seo官网
  • 泉州网站开发建设/软文发布平台哪个好
  • 创建虚拟网站做点击/常州网站建设优化
  • 福州关键词seo/seo怎样才能优化网站
  • 做网站的协议/seo在线优化网站
  • 网站建设虚拟/长沙网络公司排名