API - 缓存可分页,可排序和可搜索的数据库结果

时间:2018-04-07 22:10:39

标签: c# api caching

是否有最佳实践来缓存可以订购,分页和搜索的数据库结果?

例如,缓存是否可行,比如说:
帖子的第二页,
页面长度为10,
搜索查询“foo”,
按日期降序排序?

我正在.NET Core中编写一个Web API,使用MemoryCache进行缓存。

1 个答案:

答案 0 :(得分:1)

在应用程序的内存中缓存数据有一些缺点,如可伸缩性。 当您有两个应用程序实例时,您会发现自我缓存两次相同的数据并且内存成本。并且会出现一些情况,即数据在一个实例的缓存中而不是另一个实例上。

使用像Redis这样的东西,而不是使用应用程序内存。它有一些数据结构,如列表,有序集。

您可以将密钥设置为" pageNumber-searchQuery"并在redis上将结果设置为值。

看一下排序集:

https://redis.io/commands/zadd

Redis data structure design for sorting time-based values