nextjs 使用 lru-cache 进行缓存,在api里访问不到page中的缓存

因为Next.js中的页面和API路由是两个不同的执行上下文,它们之间的数据共享并不直接。

解决这个问题的一种常见方法是将缓存实例化为一个单独的模块,并在页面和API路由中共享这个模块。这样,无论是页面还是API路由,它们都可以访问到相同的缓存实例,从而实现数据共享。

下面是一个简单的示例代码,演示如何在Next.js中共享lru-cache缓存:

1、创建一个单独的cache.js文件,并在其中实例化lru-cache:

javascript 复制代码
// cache.js
const LRU = require('lru-cache');
const cache = new LRU({ max: 100 });

module.exports = cache;

2、在需要访问缓存的页面和API路由中引入cache.js文件,以共享缓存实例:

复制代码
// 在页面中引入缓存
import cache from '../path/to/cache.js';

// 在API路由中引入缓存
const cache = require('../path/to/cache.js');

这样,页面和API路由都可以通过引入相同的cache.js文件来访问相同的缓存实例,实现数据共享。

相关推荐
没有bug.的程序员2 小时前
分布式缓存架构:从原理到生产实践
java·分布式·缓存·架构·分布式缓存架构
虫师c4 小时前
分布式缓存实战:Redis集群与性能优化
redis·分布式·缓存·redis集群·高可用架构·生产环境·数据分片
心勤则明6 小时前
Spring AI 会话记忆实战:从内存存储到 MySQL + Redis 双层缓存架构
人工智能·spring·缓存
Lisonseekpan17 小时前
Guava Cache 高性能本地缓存库详解与使用案例
java·spring boot·后端·缓存·guava
我真的是大笨蛋17 小时前
Redis的String详解
java·数据库·spring boot·redis·spring·缓存
低调小一19 小时前
LRU缓存科普与实现(Kotlin 与 Swift)
开发语言·缓存·kotlin
伐尘21 小时前
【计算机】常见的缓存和查看方法
缓存·电脑·笔记本
我梦之621 小时前
libevent输出缓存区的数据
服务器·网络·c++·缓存
兜兜风d'1 天前
redis字符串命令
数据库·redis·缓存
野犬寒鸦1 天前
从零起步学习Redis || 第十二章:Redis Cluster集群如何解决Redis单机模式的性能瓶颈及高可用分布式部署方案详解
java·数据库·redis·后端·缓存