Repolode
microlinkhq

microlinkhq/keyvhq

一个 Node.js 键值存储库,支持 TTL 过期,并可通过适配器接入 Redis、MongoDB、SQLite 等多种后端。

Star
446
Fork
20
未关闭 Issue
0
最近提交
2个月前

这是什么?

Keyv 是一个轻量的 Node.js 键值存储库,支持为数据设置可选的过期时间(TTL)。默认将数据保存在内存中的 Map 里,也可以替换为存储适配器,把数据持久化到 Redis、MongoDB、MySQL、PostgreSQL、SQLite 或文件等后端。任何实现了 Map 接口的对象也可以作为存储使用。

接口基于 Promise,提供 set、get、has、delete、clear 等方法。命名空间(namespace)允许多个实例共用同一个数据库而互不冲突,清空其中一个也不影响其他数据。默认支持所有 JSON 类型和 Buffer,也可以自定义序列化函数来处理其他数据类型。数据库出错时不会直接导致应用崩溃。

项目还提供压缩、最大体积限制、函数缓存(memoize)、多存储组合和指标统计等装饰器。它也便于其他模块直接暴露 cache 选项并把它透传给 Keyv。

核心功能

  • 01默认使用内存存储,并支持多种数据库适配器。
  • 02支持单个键和全局默认的 TTL 过期时间。
  • 03命名空间可在共享后端中隔离键,并可单独清空。
  • 04开箱即用,支持所有 JSON 类型和 Buffer。
  • 05可自定义序列化与反序列化函数。
  • 06任何实现了 Map 接口的对象都可作为存储使用。

适用场景

  • 为 Node.js 应用添加基于 TTL 的缓存,并以 Redis 或其他数据库作为后端。
  • 在客户端库中缓存 HTTP 响应。
  • 无需自行编写数据层,即可把键值数据持久化到 SQLite 或 PostgreSQL。
  • 在可复用的 npm 模块中内置缓存支持,允许使用者自行指定存储。

快速上手

  1. 1

    安装核心包

    npm install @keyvhq/core --save
  2. 2

    可选:安装存储适配器,例如 Redis

    npm install @keyvhq/redis --save
  3. 3

    创建 Keyv 实例并进行设置、读取和删除键值的操作

使用前须知

  • 部分功能和适配器依赖 Redis、MongoDB 或 PostgreSQL 等外部数据库或服务,需要自行部署运行。

标签

常见问题

keyvhq 是什么?
一个 Node.js 键值存储库,支持 TTL 过期,并可通过适配器接入 Redis、MongoDB、SQLite 等多种后端。 Keyv 是一个轻量的 Node.js 键值存储库,支持为数据设置可选的过期时间(TTL)。默认将数据保存在内存中的 Map 里,也可以替换为存储适配器,把数据持久化到 Redis、MongoDB、MySQL、PostgreSQL、SQLite 或文件等后端。任何实现了 Map 接口的对象也可以作为存储使用。
keyvhq 可以免费使用吗?用的什么许可证?
keyvhq 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
keyvhq 还在维护吗?
半年内有更新。keyvhq 最近一次提交是在 2026年8月27日。
keyvhq 适合用来做什么?
为 Node.js 应用添加基于 TTL 的缓存,并以 Redis 或其他数据库作为后端。 在客户端库中缓存 HTTP 响应。 无需自行编写数据层,即可把键值数据持久化到 SQLite 或 PostgreSQL。 在可复用的 npm 模块中内置缓存支持,允许使用者自行指定存储。
keyvhq 怎么安装和运行?
安装核心包: npm install @keyvhq/core --save 可选:安装存储适配器,例如 Redis: npm install @keyvhq/redis --save 创建 Keyv 实例并进行设置、读取和删除键值的操作
在哪里获取 keyvhq?
源代码和安装说明在 GitHub 上:https://github.com/microlinkhq/keyvhq

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目