Redis 跟踪命中率

标签 redis

我的网站上有一个简单的每日点击计数器,我想将 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/

相关文章:

python - 如何使用 python/PIL 将图像存储到 redis

c# - 如何处理 Redis 哈希的强类型?

sql - 像SQL一样设计Redis数据库表?

redis - Redis 中的键丢失

ruby-on-rails - 优化 Sidekiq、Redis、Heroku 和 Rails

java - 与 Redisson 的连接池

redis - 如何在 3.0.7 上迁移 redis 集群中的巨大 key ?

使用 redis 的 php session 管理 - TTL 过期不会在读取时更新

node.js - 如何使用 SessionID 从 RedisStore (connect-redis) 获取 session 数据?

php - 排队 mysql 查询的最佳方法是什么?在速度方面