我使用 Node.js , Socket.io 和 mongodb 开发了一个实时应用。它具有一定的要求,当用户加载特定页面时,从mongodb获取大约20000个具有x和y坐标的点,这些点位于2个特定日期之间,并在地图上呈现给客户端。现在,如果用户再次重新加载,则重复该过程。我很困惑如何使用什么键在缓存中插入这些点,以便在用户重新加载时,使用密钥轻松获取缓存中的值。 有什么建议?谢谢!
答案 0 :(得分:0)
你可以
完全编写自己的缓存层
在此使用现有的缓存库(例如 lru-cache - isaacs的模块, 这可能是这个领域最受欢迎的)
可以使用redis作为缓存(有 能够为插入的文档设置TTL)已经有了 mongoose-redis-cache - 模块, 也许这有帮助
可能还有其他x解决方案。这取决于您的数据规模/要求数量等。
答案 1 :(得分:0)
在这种情况下,缓存是数据库为您执行的操作。 MongoDB依赖于操作系统的内存映射I / O进行存储。通用操作系统通常会将最常用的页面保留在内存中。如果您仍想使用其他缓存,则用于坐标的明显键是Geohash。
答案 2 :(得分:0)
此库runtime-memcache在JavaScript中实现了lru
和其他一些缓存方案。与Node.js一起使用,并以Typescript编写。
它使用修改后的双链表为get
,set
和remove
实现O(1)。