是否有最佳实践来缓存可以订购,分页和搜索的数据库结果?
例如,缓存是否可行,比如说:
帖子的第二页,
页面长度为10,
搜索查询“foo”,
按日期降序排序?
我正在.NET Core中编写一个Web API,使用MemoryCache进行缓存。
答案 0 :(得分:1)
在应用程序的内存中缓存数据有一些缺点,如可伸缩性。 当您有两个应用程序实例时,您会发现自我缓存两次相同的数据并且内存成本。并且会出现一些情况,即数据在一个实例的缓存中而不是另一个实例上。
使用像Redis这样的东西,而不是使用应用程序内存。它有一些数据结构,如列表,有序集。
您可以将密钥设置为" pageNumber-searchQuery"并在redis上将结果设置为值。
看一下排序集: