首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按需加载缓存

按需加载缓存
EN

Stack Overflow用户
提问于 2018-10-18 17:30:03
回答 1查看 153关注 0票数 1

我们在系统中有一个社交网络,我们已经实现了一个时间线来显示用户可以看到什么(来自其他用户和社区的帖子,他属于)。考虑到我们有一些linq-to-sql查询,它可以很好地工作,并且用户可以执行一些操作,比如对posts和posts的注释。我们还在javascript上设置了一个间隔计时器,它请求对时间线进行一些更新(用户可以看到新的帖子等等)。时间线是无限滚动加载10乘10 (根据用户所能看到的)。

我们希望提高这种方法的性能,我们正在考虑如何缓存时间线。主要的问题是我们有大量的posts (超过10000的注释和喜欢),而缓存整个post表并不是一个好主意。我们已经对它进行了测试,并获得了糟糕的性能,因为我们的缓存具有很大的大小,并且使用linq (内存中)处理页面的速度很慢。

我们是否知道如何通过需求和基于用户的方式加载缓存?或者还有其他的选择。

我们可以使用Redis或.Net MemoryCache实现。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-10-18 20:35:09

没有人会翻阅整个历史,不需要将所有东西加载到缓存中。

每次用户请求一个新页面时,如果它不在缓存中,就加载它,并将接下来的10个项加载到缓存中。这样,对于每个用户来说,第一个请求可能是唯一慢的请求。

另外,在每个页面上设置一个过期日期,如果没有人在X时间单元中请求它,请将其从缓存中删除。

请注意,在创建新项目时,页面必须重新排序(第一页中最古老的条目必须移动到第二页,等等)。(或者只是将所有内容都保存在一个列表中,但是使用一个列表实现,它不会强制在某个位置0插入某项时移动项目)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52879516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档