对动态用例使用正确的redis cmd

cetgtptt  于 2021-06-09  发布在  Redis
关注(0)|答案(0)|浏览(194)

我试图理解最适合我的用例的redis cmd。我想缓存有点动态的内容。azure cosmosdb的高昂成本就是原因。
我有一个拍卖网站,得到10页在服务器端分页的时间。在我的用例中有两个组件是动态的。
当用户出价时,缓存需要失效/更新。
拍卖结束后,物品可能会在缓存中过时。
我已经考虑了很多,我的想法是使用这个独特的钥匙

const key = `{ auctionType: { $ne: 'privateAuction' } } { auctionEndDateTime: { $gte: timeTag } } } }.skip(10 * (currentPage - 1)).sort({ dateCreated: -1 }).limit(10)

使用currentpage作为每个键的不同值,一次缓存10个列表。
然后,如果每次我都能解析回json并循环使用不同的键/过滤器,直到找到匹配的拍卖,然后使该页无效/更新数据,以便缓存是最新的。
至于动态问题#2拍卖结束,如果cache返回结束的拍卖,或者使用azure函数检查过期拍卖的密钥并使其失效,我可以在前端将它们过滤掉(不担心这部分)
我的问题是是否有一个redis cmd可以在这个场景中工作。经过研究,我认为hset可以工作,并使auctionid的哈希键。我在想,我可以创建一个for循环,用 currentPageconst key 作为动态值,循环遍历密钥,并使用类似于es6过滤器的东西来查找竞标id,然后更新/失效。如果我这样做了,如果我有50+页的一天,我确实有性能问题,但我认为使用es6过滤器将是相当快的。我很想听听你对此的想法。感谢您的帮助和建议!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题