有以下場景,key:A,B,C,準備將他們的組合做key:
A: 1
B: 2
C: 3
AB: 4
AC: 5
BC: 6
ABC: 7
我想詢問最多匹配次數的key,像是我想找A,C那麼,排序後的結果:
AC
ABC
A
C
這樣的在redis裡怎麼排序查找啊?還是我的設計就有問題啊?請教。
ringa_lee2017-04-24 09:15:17
Redis 是輕查詢的NoSQL ,除了基於鍵名的查詢,幾乎沒有其他的查詢方式,不適合使用Redis 做重查詢的資料庫,如果需要豐富的查詢,建議使用MongoDb , 相比較而言Redis 更適合高速讀寫,沒有過多邏輯依賴的快取系統。
另外,你這個需求,可以把參與排序的數據放到同一個 hash 裡,使用時讀出所有數據,再在程式中進行排序。不過這只是個折衷的方法。
迷茫2017-04-24 09:15:17
使用redis內建的sortset類型儲存資料吧,它支援sorce下標 相當於索引 有強大的查詢 排序 範圍查詢能力 具體可以看redis關於sortset類型的文件
高洛峰2017-04-24 09:15:17
Redis只支援一種模糊查詢,那就是keys,根據關鍵字進行查詢,其他的任何資料結構都不支持,所以你的需求單純的透過Redis肯定是無法實現的。可以考慮其他NoSql產品,或透過建立索引來實現。