查询redis数据

时间:2011-09-13 05:34:35

标签: redis

我的access_log文件有几条这样的行...... 10.10.11.69 [13 / Sep / 2011:09:52:48 +0530]“GET /icons/blank.gif HTTP / 1.1”304 - “http://10.10.10.14/production-logs/no2-pg-wallet /“”Mozilla / 5.0(Windows; U; Windows NT 6.1; en-US; rv:1.9.2.15)Gecko / 20110303 Firefox / 3.6.15“

我正在尝试将数据保存在redis数据库中。我可以创建一个自动递增的ID并保存IP,时间戳,页面响应等,如下所示。

redis-cli incr next.news.id

set news:2:IP "10.10.11.69"

set news:2:timestamp "[13/Sep/2011:09:52:48 +0530]"

set news:2:request "GET /icons/blank.gif HTTP/1.1"

set news:2:response "304"

set news:2:page "http://10.10.10.14/production-logs/" 

set news:2:browser "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15"

我有两个问题:

1)如何自动化将access_log存储到redis的过程?

2)我怎么知道我收到多少次点击“production_logs”?

1 个答案:

答案 0 :(得分:1)

  

如何自动化将access_log存储到redis的过程?

您可能需要创建一些脚本/程序,这些脚本/程序在每次创建新日志条目时都会执行您的命令集,或者在一段时间后批量执行此操作(例如,计划作业)。

  

如何知道我收到多少次点击“production_logs”?

您可以创建一个由一些前缀和页面url(或url的哈希值)组成的键,例如url:{url or hash here},并在此键上使用INCRBY命令。如果你想要哈希页面url,你可以将这些东西存储在redis哈希数据结构中,其中一个字段表示url的名称,第二个字段用于使用HINCRBY命令存储命中数。