首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在实时应用中存储大容量数据

如何在实时应用中存储大容量数据
EN

Stack Overflow用户
提问于 2019-02-20 05:42:20
回答 1查看 186关注 0票数 0

我正在做一个实时的协同画布项目,在这个项目中,用户可以创建房间,其他人可以用一些id和pass加入他们。我的应用程序还支持多个选项卡功能,我还使用fabric.js来处理画布操作,现在我想让这个应用程序的方式是,如果用户由于某些互联网问题而断开连接,那么在重新连接之后,他可以继续从那里离开。为此,我需要在某个地方存储数据,我尝试用mongoDB来实现它,但是我的画布数据很大,比如300 my或500 my,从mongoDB获取数据需要花费太多的时间,因此应用程序的性能非常差。每一个操作,如撤销,打开新标签等,都是缓慢的。因此,我想知道在这种情况下我应该如何管理数据。

下面是我的fabric.js对象:

代码语言:javascript
复制
"{\"version\":\"2.4.4\",\"objects\":[{\"type\":\"path\",\"version\":\"2.4.4\",\"originX\":\"left\",\"originY\":\"top\",\"left\":94,\"top\":89.17157287525382,\"width\":4,\"height\":23.83,\"fill\":null,\"stroke\":\"black\",\"strokeWidth\":2,\"strokeDashArray\":null,\"strokeLineCap\":\"round\",\"strokeDashOffset\":0,\"strokeLineJoin\":\"round\",\"strokeMiterLimit\":10,\"scaleX\":1,\"scaleY\":1,\"angle\":0,\"flipX\":false,\"flipY\":false,\"opacity\":1,\"shadow\":null,\"visible\":true,\"clipTo\":null,\"backgroundColor\":\"\",\"fillRule\":\"nonzero\",\"paintFirst\":\"fill\",\"globalCompositeOperation\":\"source-over\",\"transformMatrix\":null,\"skewX\":0,\"skewY\":0,\"path\":[[\"M\",97.998,100],[\"Q\",98,100,98.5,100],[\"Q\",99,100,99,99],[\"Q\",99,98,99,97],[\"Q\",99,96,99,95],[\"Q\",99,94,99,93],[\"Q\",99,92,99,91.5],[\"Q\",99,91,99,90.5],[\"Q\",99,90,98.5,91],[\"Q\",98,92,98,93.5],[\"Q\",98,95,98,97],[\"Q\",98,99,97.5,100.5],[\"Q\",97,102,97,104.5],[\"Q\",97,107,97,108.5],[\"Q\",97,110,96.5,111],[\"Q\",96,112,96,112.5],[\"Q\",96,113,95.5,113],[\"Q\",95,113,95,113.5],[\"L\",95,114.002]]}]}"

这只是一个显示当前状态的对象,就像这样,我的DB中也有许多对象要存储以前的状态。因为这是实时应用程序,我想尽量减少延迟,所以我需要更快的方法。

我正在使用nodeJs和socket.io。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-20 06:23:33

使用Redis

Redis是一个开源的(BSD许可的)内存数据结构存储,用作数据库、缓存和消息代理。它支持字符串、散列、列表、集合、带范围查询的排序集、位图、超日志、具有radius查询和流的地理空间索引等数据结构。Redis内置了复制、Lua脚本、LRU驱逐、事务处理和不同级别的磁盘上持久化,并通过Redis Sentinel和Redis集群自动分区提供了高可用性。

官方Node.js客户端

它有多个Node.js客户端实现。这是官方支持的

备注

虽然Redis比MongoDb快,但并不是所有问题的解决方案。您可以在StackOverflow上查看这个线程以进行比较。

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

https://stackoverflow.com/questions/54779533

复制
相关文章

相似问题

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