gpt4 book ai didi

python - Redis页面计数器

转载 作者:IT王子 更新时间:2023-10-29 06:15:18 26 4
gpt4 key购买 nike

我正在编写一个 flask 应用程序,它将计算来自多个网站的页面浏览量。我决定使用 Redis 和 Redispy,但我很难决定如何构建。本来我想有这样的东西

redis.set("date:YYYYMMDD:site:sitename", 1)

我希望能够按日期查询,或按网站名称查询并显示计数值。我尝试使用 .keys 按日期或站点名称查询,但 REDIS 文档说要避免使用键。
所以我想也许我可以使用 redis 哈希:

redis.hset("date:YYYYMMDD", "site", "sitename")
redis.hset("counter", 1)

最终,我希望能够按站点名称、日期在站点计数器上运行报告,或者显示所有日期的所有值。我似乎找不到合适的结构来让我得到我想要的。

如有任何建议,我们将不胜感激!我以前没有用过REDIS。

最佳答案

对于所描述的整体递增计数器,结构类似于 this answer将是行之有效的方法。给出的答案有更多关于使用排序集处理时间序列数据的细节。它甚至有汇总数据的方法(也许您还想报告月度数据)。

如果,正如您的示例所示,您的解决方案是每天,那么一个结构将数据存储在一个排序集中, key 中包含站点/域名,并使用每日时间戳和 [ZINCRBY][2] 会很好地为您服务。

关于 keys ... 不要。根本不要。

作为替代方案,您可以设置在使用域/站点名称作为标识符时存储 key 。每当您为站点/域名运行 ZINCRBY 时,也会对“索引键”(例如 sites-with-traffic:YYYY:MM)执行 SADD 操作:DD。这样您就可以提取当天的一组独特网站,并从那里为每个网站构建查询。

在您的描述中,您说您可能希望在特定日期进行报告。使用 Redis 执行此操作的方法是简单地查询关键数据(如果存在)。如果您什么也没得到,那段时间的流量为 0。当您有一组参数时不要查询 - 使用它们。您列出的这些查询模式中唯一可能未知的是上述站点/域名,并将它们添加到一个集合中可以解决该需求。

关于python - Redis页面计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19749051/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com