学习

在 Node.js 中使用 Redis

Simon Prickett
作者
Simon Prickett, Redis 首席开发者推广工程师

要从应用程序连接到 Redis,我们需要针对我们正在编写代码的语言的 Redis 客户端库。Redis 客户端执行以下功能:

  • 管理我们的应用程序和 Redis 服务器之间的连接。
  • 使用 Redis 的线协议处理与 Redis 服务器的网络通信。
  • 提供我们在应用程序中使用的特定于语言的 API。

对于 Node.js,有两个流行的 Redis 客户端:ioredis 和 node_redis。这两个客户端都暴露了相似的编程 API,将每个 Redis 命令封装为一个可以在 Node.js 脚本中调用的函数。在本课程中,我们将使用 ioredis,它内置支持现代 JavaScript 功能,例如 Promises。

以下是一个完整的 Node.js 脚本,它使用 ioredis 执行我们之前在 redis-cli 中尝试过的 SET 和 GET 命令:

const Redis = require('ioredis');

const redisDemo = async () => {
  // Connect to Redis at 127.0.0.1, port 6379.
  const redisClient = new Redis({
    host: '127.0.0.1',
    port: 6379,
  });

  // Set key "myname" to have value "Simon Prickett".
  await redisClient.set('myname', 'Simon Prickett');

  // Get the value held at key "myname" and log it.
  const value = await redisClient.get('myname');
  console.log(value);

  // Disconnect from Redis.
  redisClient.quit();
};

redisDemo();

ioredis 将每个 Redis 命令封装在一个函数中,该函数可以接受回调或返回一个 Promise。在这里,我使用 async/await 来等待每个命令在 Redis 服务器上执行完毕,然后再继续下一个。

运行这段代码会显示现在存储在 Redis 中的值:

$ node basic_set_get.js
Simon Prickett

外部资源#

以下额外资源可以帮助您了解如何从 Node.js 应用程序访问 Redis:

在这段视频中,我将介绍如何快速上手 ioredis 客户端: