keyv-upstash 简介:无服务器 Redis 的无缝键值存储

keyv-upstash 简介:无服务器 redis 的无缝键值存储

github:https://github.com/mahdavipanah/keyv-upstash

keyv-upstash 是 keyv 的存储适配器,可将其连接到无服务器 redis 平台 upstash redis。借助此适配器,您可以为无服务器应用程序中的键值存储提供简单、高效且灵活的解决方案。

什么是keyv?

keyv是一个多功能的键值存储库,通过适配器支持多个后端。它提供:

基于 ttl 的过期:非常适合缓存或持久存储。

命名空间支持:避免共享环境中的按键冲突。

可扩展性:轻松构建自定义模块或添加压缩等功能。

keyv 可与许多适配器配合使用,例如 redis、sqlite、mongodb,现在还支持 upstash redis 的 keyv-upstash。

为什么选择 keyv-upstash?

keyv-upstash 通过与 upstash redis 集成来扩展 keyv 的功能,提供:

无服务器兼容性:upstash redis 无需管理连接即可工作,自动扩展,非常适合无服务器应用程序。

灵活:兼容keyv生态,支持第三方扩展。

cache layering:与 cacheable 结合进行多层缓存。

无供应商锁定:与 serverless-redis-http 完全兼容,因此您可以设置自己的无服务器 redis 并使用此适配器。

入门

按照以下步骤集成 keyv-upstash:

1.安装keyv和keyv-upstash

安装 keyv 和 upstash 适配器:

npm install keyv keyv-upstash

登录后复制

可选:安装 cacheable 以进行分层缓存:

npm install cacheable

登录后复制

2. 设置 keyv-upstash

确保您在 upstash 中创建了 redis 数据库。以下是如何在项目中使用 keyv-upstash:

基本用法

import keyv from 'keyv';import { keyvupstash } from 'keyv-upstash';const keyv = new keyv({  store: new keyvupstash({    url: 'your-upstash-redis-url',    token: 'your-upstash-redis-token',  }),});// set a key-value pairawait keyv.set('foo', 'bar');// retrieve the valueconst value = await keyv.get('foo');console.log(value); // 'bar'

登录后复制

使用命名空间

命名空间可防止键冲突并允许范围清除:

const keyv = new keyv({  store: new keyvupstash({    url: 'your-upstash-redis-url',    token: 'your-upstash-redis-token',    namespace: 'my-namespace',  }),});await keyv.set('foo', 'bar'); // stored as 'my-namespace::foo'

登录后复制

缓存分层与可缓存

将 keyv-upstash 与 cacheable 结合起来进行多层缓存:

import { cacheable } from 'cacheable';const redisstore = new keyvupstash({  url: 'your-upstash-redis-url',  token: 'your-upstash-redis-token',});const cache = new cacheable({  primary: new map(), // fast in-memory caching  secondary: redisstore, // persistent redis caching});await cache.set('foo', 'bar', { ttl: 1000 }); // stores in both layersconst value = await cache.get('foo'); // fast lookup from memory or redisconsole.log(value); // 'bar'

登录后复制

高级功能

批量操作

使用 setmany 和 getmany 提高性能:

await keyv.setMany([  { key: 'key1', value: 'value1' },  { key: 'key2', value: 'value2' },]);const values = await keyv.getMany(['key1', 'key2']);console.log(values); // ['value1', 'value2']

登录后复制

自定义配置

使用defaultttl、keyprefixseparator 和clearbatchsize 等选项自定义您的设置。

以上就是keyv-upstash 简介:无服务器 Redis 的无缝键值存储的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2645953.html

(0)
上一篇 2025年3月7日 07:39:49
下一篇 2025年2月19日 01:15:54

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 掌握组件通信

    掌握 react 中的组件就是理解它们的行为: 它们如何接收 props,如何处理全局状态,以及如何管理嵌套子组件。有效的组件通信可确保代码干净、可维护。让我们深入了解 react 中组件通信的不同方式以及为什么理解这一点至关重要。 道具:…

    2025年3月7日
    200
  • npm 与 npx:有什么区别?

    作者 fimber elemuwa✏️ 在使用 javascript 或 node.js 时,您很可能遇到过 npm,即 node 包管理器。它是管理包、安装依赖项并确保您的项目与其所需的库保持最新状态的首选工具。但是 npx 是另一个与 …

    2025年3月7日
    200
  • 面向开发人员的顶级免费 API 测试工具

    API 测试是软件开发生命周期中的关键阶段,可确保您的 API 功能正常、可靠并满足用户期望。以下是用于 API 测试的顶级免费测试工具的列表,其中包括 Keploy,这是一种人工智能驱动的解决方案,可增强您的测试工作流程: 1。邮递员 P…

    2025年3月7日
    200
  • 外部库:外部库的隐藏重量

    作为开发人员,我们经常依赖外部钩子库来节省时间,利用经过充分测试的解决方案,并专注于项目的大局。然而,考虑这些库对捆绑包大小的影响至关重要,这是影响应用程序性能和加载速度的关键因素。让我们探讨一下这些库如何影响包大小,如何检查是否支持 tr…

    2025年3月7日
    200
  • JavaScript 面试备忘单 – 第 2 部分

    常见 leetcode 模式 // two pointers – in-place array modificationconst modifyarray = (arr) => { let writepointer = 0; for …

    2025年3月7日
    200
  • 使用 Laravel、Inertiajs v 和 Vue 3 实现无限滚动

    在这篇综合指南中,我们将探索如何使用 inertia.js v2.0 和 vue 3 在 laravel 应用程序中实现无限滚动。我们将介绍前端和后端实现,特别注意处理整页刷新并保持滚动位置。 目录 了解组件前端实现后端实现现实示例:带有类…

    2025年3月7日
    200
  • JavaScript:学习编码基础知识

    javascript 是一种强大且多功能的编程语言,对于现代 web 开发至关重要。它最初是为了使网页具有交互性而设计的,现在已经发展成为与 html 和 css 并列的 web 核心组件。如今,javascript 不仅运行在浏览器中,还…

    2025年3月7日 编程技术
    200
  • 如何使用 JavaScript 在 Bluesky 上发布带有嵌入卡的链接

    随着 bluesky 的不断流行,更多的工具正在围绕它开发。最流行的应用程序之一是后期调度和自动化。 但是,bluesky 的 api 目前不提供直接发布 opengraph 卡片链接的方法。对于想要共享具有有吸引力预览的链接的用户来说,这…

    2025年3月7日
    200
  • AppWorks School – CloudMile 反馈循环项目

    作为训练营计划的一部分,我有机会与 cloudmile 的开发者导师密切合作,开展一个名为“反馈循环”的项目。它是一种活动反馈管理工具,可帮助组织者通过表单提交来跟踪参与者的反馈。我和另一位同学合作完成了这个为期两周的项目,并得到了我们 5…

    2025年3月7日
    200
  • Javascript 中数字和数组的简单运算

    大家好,以下是我通过数字和数组学到的一些东西:注意:首先使用 vscode 在计算机上创建一个文件夹,打开 vscode 转到“打开文件夹”,打开文件夹,使用“新文件”创建一个新文件,并在“example.js”末尾以 .js 命名并运行您…

    2025年3月7日
    200

发表回复

登录后才能评论