2011-10-30 40 views
1

我是redis的新手,并想开始在redis中存储当前为JSON的对象。但我需要一些关于最佳数据结构的建议。关于在Redis中使用的最佳数据结构的建议?

基本上,对象存储有关哪个用户查看哪个页面的信息。这里的JSON:

all_pageviews = { 
    'unique_user_session_id_1' : { 'page' : 2, 'country' : 'DE' }, 
    'unique_user_session_id_2': { 'page' : 2, 'country' : 'FR' } 
    ... 
}; 

我一直在使用与用户ID作为密钥的JSON对象,因为这样我可以确保密钥是唯一的,这是我的应用程序的各种重要的原因。

我将要在以下几个方面有效地查询它:

  • 通过用户:获得有关unique_user_session_id_2所有数据。
  • 通过页面:获取与页码2相关的所有用户对象。

关于什么是最好的redis结构使用的想法?为了我的应用程序的目的,排序并不重要,但有效地查询确实如此。

请让我知道,如果我已经很糟糕地解释自己,或者如果你需要更多的信息。谢谢!

回答

2

要通过多个键在redis中查找数据,您必须使用多个结构。

我会用一个​​3210来user_session_ids映射到JSON字符串,并且sorted set映射的页面user_session_ids

+0

因此,使用两个不同的“表”,与结束了不同步的信息,随之而来的危险?在Redis中没有办法按价值搜索? – Richard

+1

可悲的是,没有。你可能会考虑MongoDB,如果这只是你想要坚持的许多JSON对象之一。 – ABentSpoon

+0

谢谢。我不需要多个对象,只是通过两个值中的任何一个查询相同对象的明智方式。我可以将它重写为'{user_id:12345,page_id:2,country:'DE'}',只要我可以通过user_id和page_id的值来查询,在Redis中不可能?! – Richard

相关问题