用于在 Redis 中存储历史记录 table(即审计跟踪)的模式?
Schema for storing history table (i.e. audit trail) in Redis?
我们有一个跟踪工单审查状态的系统。工单可以在各种状态之间转换(等待审核、当前正在审核、已接受、未接受等)。转换由用户命令触发。
对于每个状态更改,我们还需要存储一些元数据 - 例如时间戳、请求用户等
我们运行最常见的查询是:
- 列出所有工单,以及每张工单的当前状态
- 列出给定状态下的所有工单
- 获取工单的历史记录,包括每次状态更改和关联的元数据
我想尝试一下在 Redis 中执行此操作(部分作为 Redis 的学习练习)。
网上似乎有大量关于在关系数据库中创建历史表的信息,以及示例模式。但是,我找不到太多关于在 Redis 中执行历史记录 tables/audit trails 的信息。
首先,有什么特别的原因让我不想为此使用 Redis 吗?
其次,我会在 Redis 中查看哪种模式来存储上述信息?
第三,我可以使用任何特定的 Redis techniques/commands?
您可能需要检查内存要求是否适合您的基础架构。这将是选择 Redis 的主要考虑因素。
为了对这个问题建模,您将有一个散列用于每张票,一个散列用于每个用户,一个散列用于每个状态变化,以及许多集合来保持这些散列之间的必要引用。如果你认为你会走这条路,我可以给你一个更详细的例子。
我建议您看一下 Ohm,它是对此类问题建模的轻量级工具。
我们有一个跟踪工单审查状态的系统。工单可以在各种状态之间转换(等待审核、当前正在审核、已接受、未接受等)。转换由用户命令触发。
对于每个状态更改,我们还需要存储一些元数据 - 例如时间戳、请求用户等
我们运行最常见的查询是:
- 列出所有工单,以及每张工单的当前状态
- 列出给定状态下的所有工单
- 获取工单的历史记录,包括每次状态更改和关联的元数据
我想尝试一下在 Redis 中执行此操作(部分作为 Redis 的学习练习)。
网上似乎有大量关于在关系数据库中创建历史表的信息,以及示例模式。但是,我找不到太多关于在 Redis 中执行历史记录 tables/audit trails 的信息。
首先,有什么特别的原因让我不想为此使用 Redis 吗?
其次,我会在 Redis 中查看哪种模式来存储上述信息?
第三,我可以使用任何特定的 Redis techniques/commands?
您可能需要检查内存要求是否适合您的基础架构。这将是选择 Redis 的主要考虑因素。
为了对这个问题建模,您将有一个散列用于每张票,一个散列用于每个用户,一个散列用于每个状态变化,以及许多集合来保持这些散列之间的必要引用。如果你认为你会走这条路,我可以给你一个更详细的例子。
我建议您看一下 Ohm,它是对此类问题建模的轻量级工具。