[英]Java server- Storing and retrieving large amounts of location- and time-based data
我是服务器编程(和一般编程)的新手,并且当前正在开发一个应用程序。 该应用程序将允许用户创建具有经纬度位置,时间和日期以及其他数据的游戏,这些数据将存储在服务器上。 他们还可以根据他们的位置查找其他用户创建的游戏。 在给定时间之后,将游戏存档(因此只能通过游戏ID而不是位置来检索游戏)。
此外,每个游戏都将具有唯一的数字ID,每个新创建的游戏将具有比前一个更大的ID号(因此,数据将按ID顺序排列,而无需进行排序),用户可以找到一个游戏使用此ID(例如,如果他们的朋友通过发送ID来邀请他们)。
总之,用户可以通过接近度或唯一ID查找数据,并且在给定的日期和时间(每个游戏都有单独的到期日期)之后将数据存档(以便只能通过ID检索)。
我的问题是:服务器应如何存储这些数据? 我考虑过要做的是,这似乎效率很低-
是否有某种数据结构可以更有效地做到这一点? 就此而言,我什至应该担心哪种类型的用户更高效?
我已经解决了。 (如果您将此作为参考,请警告我不是专业人士,这很可能是一个糟糕的主意。)
-我将为每个游戏对象存储一个单独的数据文件。 它们的存储方式使得同一文件夹中的文件/文件夹永远不会超过100个,并且可以使用简单的过程式生成文件路径来进行检索。 (无需在目录中进行昂贵的搜索,因为可以根据文件的唯一ID知道每个文件的确切位置)-游戏ID(或某种地图)的内存数组(或ArrayList)已过期,以它们何时过期为顺序。 我永远不可能一次拥有超过一百万个这样的内存,即使有这种荒唐的高估,它仍然只使用8字节* 1百万个条目= 8兆字节的内存,远远超过了可用的1兆字节。 ,因此即使考虑到存储它们的对象的开销,这也不是问题。 -Ditto用于QuadTree-存储在内存中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.