这样的数据该用什么结构存储?

s33ker 发布于 2014/07/17 17:46
阅读 352
收藏 0

当前数据如下

Server{ip,port,set<Table> tables}

server类包含 ip 端口 源表集合

Table{name,byte[] data,time,coordinate}

源表又包含,名字,byte[]数据,更新时间,坐标。

目前的需求就是:

    1、可以根据ip端口 获取 所有源表的name,根据name 获取 此源表的 byte[]  时间 和坐标等。

    2、根据一个坐标(非源表里的),遍历源表里面的所有坐标,获取距离最近的源表对象中的byte[] 时间(算法忽略)。

现在我想的存储结构就是redis的hashmap,

    key 为 ip+端口  

    value为   源表名:bye[]-time-坐标    源表名2:bye[]-time-坐标2    源表名3:bye[]-time-坐标3...

这种存储第一个需求根据源表名查找可以满足,

但是第二个,根据坐标判断来确定源表,就不行或者是很麻烦了。

一直想不出好的方法来,用哪个nosql也可以,只要能简单实现。

小弟,对nosql之类了解很少,所以望不吝指教。在线等


加载中
0
风中之神
风中之神
难道还有比Mongodb更好的存储?
0
风中之神
风中之神

http://kelan198393.blog.163.com/blog/static/7110157201210124255180/


就是你要的数据结构了,看这个就可以了

  1.  db.blogs.findOne();  
  2. {  
  3.         "_id" : ObjectId("502262ab09248743250688ea"),  
  4.         "content" : ".....",  
  5.         "comment" : [  
  6.                 {  
  7.                         "author" : "joe",  
  8.                         "score" : 3,  
  9.                         "comment" : "just so so!"  
  10.                 },  
  11.                 {  
  12.                         "author" : "jimmy",  
  13.                         "score" : 5,  
  14.                         "comment" : "cool! good!"  
  15.                 }  
  16.         ]  
  17. }  

s33ker
s33ker
那怎么快速的获取所有的坐标啊,多个server,每个server中有多个table,每个table对应一个坐标。
s33ker
s33ker
恩,谢谢,我再仔细看看Mongodb,只是不知道mongodb的id可以自己设定吗?我如果 用 ip+port作为id,就非常好查询了。
0
风中之神
风中之神

id 可以设定,不过ip + port 是可以做为两个关键字查询的,这个不要把mongodb认为就是一个map,在查询这点有点像关系型数据库;


你的第一个要求就是map都能实现,何况这种具有关系查询的mongodb;

返回顶部
顶部