2013-08-29 32 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