gpt4 book ai didi

redis - Redis 中按类别、作者和日期分组的计数器

转载 作者:可可西里 更新时间:2023-11-01 11:21:22 25 4
gpt4 key购买 nike

我正在实现一个在关系数据库中存储大量数据的系统。

数据可以分类并有作者。

我想获取按日期、类别和作者分组的项目数以及按日期分组的每个类别的所有项目的总和。

系统必须接近实时。

例如(3 个类别,3 个作者,2 个日期)

item1 category1 author1 2015-04-23
item2 category1 author2 2015-04-23
item3 category2 author1 2015-04-23
item4 category1 author1 2015-04-23
item5 category2 author2 2015-04-23
item6 category2 author2 2015-04-24
item7 category3 author1 2015-04-24
item8 category2 author3 2015-04-24
item9 category2 author2 2015-04-24

结果:

2015-04-23:
category1 author1: 2
category1 author2: 1
category1 author3: 0
category2 author1: 1
category2 author2: 1
category2 author3: 0
category3 author1: 0
category3 author2: 0
category3 author3: 0
2015-04-24:
category1 author1: 0
category1 author2: 0
category1 author3: 0
category2 author1: 0
category2 author2: 2
category2 author3: 1
category3 author1: 1
category3 author2: 0
category3 author3: 0

大约有 50 个类别和大约 50 位作者。

如何在 Redis 中对这种行为进行建模?

最佳答案

使用每个日期的哈希值,使用类别和作者作为字段名称,并将计数器作为值。

例如,对于第一项:

HINCRBY 20150423 1:1 1
^ ^ ^ ^
date -+ | | +- increment (static)
category id -+ +- author id

注意:我故意使用较短的标识符来节省 RAM。

要获取每个日期的数据,只需 HSCAN相关的 key (小心 HGETALL 因为它可能需要太多时间/RAM,具体取决于哈希的大小)。要获取所有日期 key ,您可以使用 SCAN (切勿使用 KEYS)或在其他数据结构(例如 Set)中保留日期索引。

关于redis - Redis 中按类别、作者和日期分组的计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29900409/

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