2011-10-30 43 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

相關問題