I'm working on web app using nestJs/postgres/redis.
What is the best way (best data structure) to cache following postgres table (hierarchy) to Redis ?

space:

  • 名称
  • 另一个属性
  • 用户(一个2多个)

folders:

  • spaceId
  • 名称
  • 用户(一个2多个)

files:

  • 文件夹ID
  • spaceId
  • 名称
  • 用户(一个2多个).

我已经try 使用key-Value来缓存它,其中key是从请求中哈希的,value是getAllMyFile的响应,但会出现一些问题 假设我想缓存路由:

/my-files

key:用户:[UTE_ID]:文档:[QUERY-HASH]

问题是:

  • 我必须 for each 用户缓存它,因此缓存会变得更大
  • 更新一个文件时,我必须使所有用户的整个文件缓存无效

推荐答案

我认为最好的解决方案是使用Redis图形

Postgresql相关问答推荐

如何在查询空字段时设置pgtype.comb为默认值?

Postgres将唯一索引添加到已在分区上具有PK的分区表中,然后添加PK

如何在生成的列的表达式中使用TIMESTAMP WITH时区列?

列不明确

sqlalchemy在Flask 下运行时出现无法解释的错误

Postgres从spark触发post-write

我想优化查询SQL

Postgres 生成的列不是不可变的

使用 GDB 调试器调试 AGE 代码的过程

AGE Graph 实际上存储为 postgreSQL 表,对吧?如何检索该表(不是图表)?

如何使用 PostgreSQL 数据库中的函数和存储过程从动态表中获取所有数据?参数传入的表名

@符号在yacc中的函数中是什么意思

gorm 创建并返回值 many2many

是否可以使用 pgAdmin4 自动格式化/美化 SQL 查询?

mysql_insert_id 替代 postgresql

如何将两个 PostgreSQL 列聚合到一个用括号分隔的数组

我如何知道我的 PostgreSQL 服务器是否使用C语言环境?

在 PostgreSQL 中跳过每 n 个结果行

升级到 Yosemite 10.10 后无法连接到 postgresql 数据库

PostgreSQL - GROUP BY 子句或用于聚合函数