一尘不染

想要使用Redis作为事件统计信息存储

redis

我对Redis真的很感兴趣,我有一个主意,想知道它是否合适,或者是否对数据存储没有其他建议。同样,关于存储数据的任何技巧将不胜感激。

我的想法只是一个简单的事件系统,因此发生了一个事件,并将其存储在redis中,如下所示

关键 值[unixtimestamp]:[系统]:[事件] | [结果]

数据可以是任何销售,印象数,错误,api响应时间,页面加载时间以及任何实时分析数据。然后,我希望能够基于该数据制作图形。


阅读 212

收藏
2020-06-20

共1个答案

一尘不染

这不是理想的设计,因为它不能有效地支持您的读取模式,并且如果[结果]短/小,则可能在RAM方面浪费。相反,可以按照以下方式使用时间戳记作为得分的Redis 排序集

ZADD [system]:[event] [timestamp] [result]

请注意,集合成员必须是唯一的,因此,如果[结果]的基数很低,请通过将时间戳串联起来(并在绘制图形时将其过滤掉)来使其唯一,即:

ZADD [system]:[event] [timestamp] [result]:[timestamp]

这样,您可以通过调用ZRANGEBYSCORE并绘制结果图形来获取测量范围。

2020-06-20