2013-08-29 29 views
0

我必須用redis和phpredis構建一個存儲日誌和顯示日誌的應用程序。Redis建模和查詢

我需要在顯示此日誌之前進行排序和查詢。

登錄模式:查詢

id -> 12 
group -> sql 
level -> error 
message -> query return an error 
timestamp -> 123423343 
url -> htpp://... 

例:

-> Show me logs with group = sql and level = error 
-> Show me all logs 
-> Show me logs with group = sql and timestamp < 1342163216 && >1585876877 

那麼結果需要由ID(ASC)進行排序。

所以我想知道是否有可能? 什麼模型選擇?

我試過字符串,哈希,集,列表,但我不能做我想要的一切。

回答

0

Redis適用於緩存系統。所以你不能像這樣查詢redis。 但是,您可以使用Redis上的Sets或SortedSet構建倒排索引。

字段名稱和值(group.sql,level.error,level.info)可以是關鍵字(術語),日誌ID可以是倒排索引中的值(發佈)。

使用該索引可以得到例子中第一個案例的查詢結果。 但它不能涵蓋所有即席查詢,如SQL