【问题标题】:Schema for storing history table (i.e. audit trail) in Redis?在 Redis 中存储历史表(即审计跟踪)的模式?
【发布时间】:2015-01-19 15:29:38
【问题描述】:

我们有一个跟踪票证审核状态的系统。工单可以通过各种状态转换(等待审核、当前正在审核、已接受、未接受等)。转换由用户命令触发。

对于每个状态变化,我们还需要存储一些元数据 - 例如时间戳、请求用户等

我们将运行的最常见的查询是:

  • 列出所有工单,以及每个工单的当前状态
  • 列出给定状态的所有工单
  • 获取工单的历史记录,包括每次状态更改和相关元数据

我想尝试在 Redis 中执行此操作(部分作为 Redis 的学习练习)。

网上似乎有大量关于在关系数据库中创建历史表的信息,以及示例模式。但是,我找不到太多关于在 Redis 中创建历史表/审计跟踪的信息。

首先,我不想为此使用 Redis 有什么特别的原因吗?

其次,我会在 Redis 中查看什么样的模式来存储上述信息?

第三,我可以为此使用任何特定于 Redis 的技术/命令吗?

【问题讨论】:

    标签: redis schema


    【解决方案1】:

    您可能需要检查内存要求是否足以满足您的基础架构。这将是选择 Redis 的主要考虑因素。

    为了对这个问题进行建模,每张票都有一个哈希值,每个用户有一个哈希值,每个状态更改一个哈希值,以及用于在这些哈希值之间保留必要引用的许多集合。如果你认为你会走这条路,我可以给你一个更详细的例子。

    我建议你看看Ohm,这是一个用于建模此类问题的轻量级工具。

    【讨论】:

    • 我预计内存不会成为问题(我知道,著名的遗言)——在任何阶段被审查的“活跃”票证数量都相当少——可能在 10 到 20 之间最大。我们正在使用 Python,所以我想我们会使用 Redisco,它显然是一个 Python 端口——但是,它似乎不是很活跃。是的,如果你能举一个更详细的例子,这样我就可以更好地理解它并判断它是否有效,那就太好了 =) - 你需要关于用例的更多细节吗?
    猜你喜欢
    • 2013-03-17
    • 2015-09-08
    • 1970-01-01
    • 2018-01-31
    • 2018-10-02
    • 2016-10-20
    • 1970-01-01
    • 2019-04-15
    • 2011-02-01
    相关资源
    最近更新 更多