gpt4 book ai didi

php - 具有快速转储数据能力的计数器键值存储

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

让我们想象一下,我们有 30 万个键,在我们的存储计数器键名中有简单的计数器,例如:
counter1_2014-03-25_00:01
counter2_2014-03-25_00:01
counter3_2014-03-25_00:01

每个计数器收集 1 分钟的数据,因此每分钟一个键:counter1_2014-03-25_00:01、counter1_2014-03-25_00:02、counter1_2014-03-25_00:03 等

每隔一分钟,我必须转储前一分钟的所有计数器并将它们从存储中删除。我当前的实现非常简单,并且使用 Redis 哈希(HINCR、HGETALL、DEL)。

//递增计数器
$Redis->hincr('counters_2014-03-25_00:02', 'counter1');

//转储和删除
$result = $Redis->multi()
->hgetall('counters_2014-03-25_00:02')//倾销
->del('counters_2014-03-25_00:02')//删除散列
->exec()

Redis 的一切都很好,但是使用 HGETALL 进行转储对于大量计数器来说变得非常非常慢,因为 HGETALLO(N) 复杂性。

现在我正在寻找允许的方法:

  • 原子递增的计数器与 Redis 一样快
  • 快速转储前一分钟收集的计数器值
  • 从存储中删除前一分钟收集的计数器
  • 不需要 100% 的坚持,但这将是一个很好的加分项

更新:需要快速转储,因为我需要将所有本地收集的数据从后端服务器传输到主服务器。

最佳答案

一个解决方案是创建简单的 key ,使用 INCR 递增,每次创建 key 时使用 EXPIRE 设置一个到期时间。

关于php - 具有快速转储数据能力的计数器键值存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22626492/

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