Redis Track Hits

Mar*_*ark 4 redis

我的网站上有一个简单的每日点击计数器,我想使用Redis作为数据存储区.

仅仅因为redis有一个过期,我不必设置一个cron来清除数据.另外我想尝试一下.

我以URL为基础存储每日点击量.

如何存储网址的每日点击量,然后让它们在一天结束时到期.

例如:

incr today:www.google.com           >> 1
incr today:www.google.com           >> 2
incr today:www.google.com           >> 3
incr today:www.yahoo.com            >> 1
incr today:www.yahoo.com            >> 2

我如何让这些柜台在一天结束时到期?如果我过期,它会重置计数器.

我觉得我的思维过程已经过去了.我倒退了吗?

Tom*_*son 7

您需要使用当前日期作为关键而不是"今天".

设置当前日期的哈希值,每个url是该哈希值中的键.那么你的更新就是

HINCRBY 101021 www.google.com 1

一旦你不想再保留数据,就可以使用DEL命令删除一天的整个哈希 - 也许可以设置一个手动触发的脚本,该脚本在1到2个月之间调用DEL.

虽然我没有尝试过,但是设置哈希的到期可能也会有效 - 每天使用不同的密钥意味着你不依赖于在精确时间发生的到期,就像你使用"今天"密钥一样.