Introduction to Redis Hello Redis Example

2025-05-28

Redis 简介

Hello Redis 示例

对于高流量的 Web 服务来说,利用某种缓存机制至关重要。缓存是一种将计算数据存储在内存中的方式,以便可以立即处理未来的请求。如果策略得当,缓存还可以避免往返数据层和应用程序端的计算。Redis 和 Memcached 是两种最流行的基于内存的存储系统。在本文中,我们将探讨 Redis 的一些关键概念并学习一些基本命令。除了缓存之外,Redis 还可用于其他需要快速频繁访问数据的应用程序。

Redis

redis 徽标

Redis 是一个内存数据结构存储,支持多种数据类型,如字符串、哈希、集合、有序集合等。本质上,它是一个键值存储。

Redis 中每种类型的值都存储在一个二进制安全的键中,键可以是从空字符串到长哈希字符串的任何值。每个应用程序都应遵循预先确定的 Redis 键命名模式,以避免任何命名冲突。

设置Redis

与所有数据库一样,Redis 包含一个用于在内存中存储数据的服务器,以及一些用于向服务器执行命令的客户端。
在本地计算机上搭建服务器时,我建议使用 Docker,因为它易于上手。如果您的计算机上运行着 Docker 守护进程,请运行以下命令:

docker run --rm -it --name local-redis -p 6379:6379 redis
Enter fullscreen mode Exit fullscreen mode

这将在您的本地主机上使用端口 6379 运行一个名为 local-redis 的 Docker 容器。它使用官方 Redis docker 镜像来运行该容器。

对于客户端,我们可以使用 redis-cli 从 Redis 服务器上的控制台执行命令。打开一个新选项卡,并执行以下命令以启动连接到本地 docker Redis 服务器实例的 redis-cli 会话:

docker run -it --link local-redis:redis --rm redis redis-cli -h redis -p 6379
Enter fullscreen mode Exit fullscreen mode

现在我们可以开始执行一些基本的 Redis 命令。

命令

  • 设置值:

    语法:SET <key> <value>
    示例:SET firstname Albert

  • 检索值:

    语法:GET <key>
    示例:GET firstname

  • 检查键是否存在

    句法:EXISTS <key>

  • 删除一个键:

    可以使用以下方法删除密钥及其关联的内存:
    DEL <key>
    这是一个同步阻塞操作。

    删除键的更好方法是取消链接,其相关内存稍后可以由垃圾收集器收集。
    UNLINK <key>

  • 设置密钥的过期时间:

    EXPIRE <key> <seconds>
    PEXPIRE <key> <milliseconds>

  • 一次性设置一个密钥并检查其存在性到期性:

    句法:SET <key> <value> <EX seconds>|<PX milliseconds> NX|XX

    NX - 仅在密钥不存在时设置。XX
    - 仅在密钥已存在时设置。EX
    - 设置密钥的过期时间(以秒为单位)。PX
    - 设置密钥的过期时间(以毫秒为单位)。

    例子:

    SET firstname Albert EX 10 NX

    仅当键不存在时,这将设置键 firstname 的字符串值“Albert”,并且有效时间为 10 秒。

  • 增加减少一个整数值:

    Redis 提供了一种方便的方法来增加或减少可用作计数器的整数值。

    句法:
    INCR <key>
    DECR <key>
    INCRBY <key> <increment value>
    DECRBY <key> <decrement value>

    例子:
    SET counter 4
    INCRBY counter 6

    counter 键最初将保存值 4,在第二个命令之后,它将增加到 10。

以上所有命令仅处理字符串或整数值的存储和操作。还有其他数据结构值,例如哈希值、集合、位数组等,可用于解决复杂问题。

现实世界的例子

在实际应用程序中,您可以使用各种编程语言特定的redis 客户端从应用程序代码与您的 Redis 服务器进行交互。

我们将编写一个简单的基于 Node 的应用程序,它公开一个端点,用于根据用户 ID 获取用户信息。为了尽可能简化操作,我们将使用一个 JSON 文件作为数据存储。

  • npm init首先,通过运行并安装expressredis作为依赖项来初始化 NPM 存储库。
  • 现在,创建一个 redis 辅助文件,用于构建连接到 Redis 服务器的 redis 客户端实例。我们还将在这里为路由处理程序编写一些缓存辅助方法。

    redis 缓存帮助文件

  • 在主应用文件中,编写一个路由处理程序,该处理程序接受一个用户 ID,用于检索用户信息。接下来,使用该用户 ID 生成一个唯一的 Redis 键。对于给定用户 ID 的每个请求,此键始终相同。检查 Redis 缓存中是否存在此键,如果找到,则返回响应。

    主文件 index.js

  • 否则,我们将从数据源查询数据并将响应数据设置为 Redis 缓存,然后将其作为响应发送回去。

要查看完整代码并进行修改,您可以克隆以下存储库:

GitHub 徽标 divyanshutomar / hello-redis

使用 Redis 缓存数据的 Express 应用程序

Hello Redis 示例

一个快速应用程序,演示了如何利用 redis 缓存数据,以便立即满足重复请求。

要求

  • 节点 >= 8.x
  • Redis

设置和运行

  • 克隆这个 repo。
  • 使用 安装所有节点依赖项npm install
  • 确保你的本地 Redis 服务器实例已在 上运行localhost:6379。如果没有,并且你的机器上正在运行 docker daemon,则可以通过运行以下命令轻松启动一个。
docker run --rm -it --name local-redis -p 6379:6379 redis
  • 通过运行启动节点服务node index.js



恭喜!您现在已经了解了 Redis 的基础知识。如果您想深入了解,请查看官方Redis 文档

感谢您的关注,希望这篇文章对您有所帮助。
欢迎关注我的推特,获取更多相关主题的更新。

文章来源:https://dev.to/divyanshutomar/introduction-to-redis-3m2a
PREV
如何在一周内使用 Next.js 构建 SaaS
NEXT
你需要了解的 8 个令人兴奋的 JavaScript 新概念