我的网站上有一个简单的每日点击计数器,我想将 Redis 用作其数据存储。
仅仅因为 redis 有过期时间,所以我不必设置 cron 来清除数据。另外,我想尝试一下。
我以 URL 为基础存储每日点击量。
我如何存储一个 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
如何让这些计数器在一天结束时过期? 如果我过期,它会重置计数器。
我觉得我的思考过程不对劲。我是在倒退吗?
最佳答案
您需要使用当前日期而不是“今天”作为键。
为当前日期设置一个散列,每个 url 都是该散列中的一个键。您的更新将是
HINCRBY 101021 www.google.com 1
一旦您不想再保留数据,您可以使用 DEL 命令删除一天的整个哈希 - 也许设置一个手动触发的脚本,为 1 到 2 个月之间的所有内容调用 DEL。
虽然我还没有尝试过,但在哈希上设置过期时间可能也会起作用 - 每天使用不同的 key 意味着您不会像使用“今天” key 那样依赖在精确时间发生的过期时间.
关于Redis 跟踪命中率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3966487/