我对 Redis 非常感兴趣,我有一个想法,想知道它是否是一个合适的用例,或者它是否不是关于数据存储的任何其他建议。也将不胜感激有关存储数据的任何提示。
我的想法只是一个简单的事件系统所以一个事件发生并存储在redis中如下
key |值(value) [unixtimestamp]:[系统]:[事件] | [结果]
数据可以是任何销售、印象、错误、api 响应时间、页面加载时间或任何实时分析。然后我希望能够根据该数据制作图表。
最佳答案
这不是一个理想的设计,因为它不会有效地支持您的读取模式,如果您的 [result] 短/小,它可能会在 RAM 方面造成浪费。相反,考虑使用 Redis 的 sorted sets以时间戳作为分数,采用以下方式:
ZADD [system]:[event] [timestamp] [result]
请注意,集合成员必须是唯一的,因此如果 [result] 的基数较低,则通过将时间戳连接到它(并在绘制图表时将其过滤掉)来使其唯一,即:
ZADD [system]:[event] [timestamp] [result]:[timestamp]
这样您就可以通过调用 ZRANGEBYSCORE 并绘制结果图表来获取测量范围。
关于redis - 想使用 Redis 作为事件统计存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26475557/