我有以下模型:
| string (unique key) | about 10 other strings, that have all a fixed length and may be empty |
通常查询是使用“唯一键并查看其他字符串”。使用 Redis 应该没问题。
但另一个查询是“向我显示第 n 列为空的键”。我不确定 Redis 是否可以处理这种性能!?
我有以下模型:
| string (unique key) | about 10 other strings, that have all a fixed length and may be empty |
通常查询是使用“唯一键并查看其他字符串”。使用 Redis 应该没问题。
但另一个查询是“向我显示第 n 列为空的键”。我不确定 Redis 是否可以处理这种性能!?
要在 redis 中解决这个问题,您需要维护一些元数据。一种解决方案是为每个“列”添加一个集合类型键,该键将保存该“列”为空白的所有元素的唯一键。显然,在您的应用程序逻辑中,当您在主哈希中添加和删除值时,您将需要从这些集合中添加和删除唯一键。这将非常快,因为集合操作sadd
,srem
并且sismember
对于单个项目都是 O(1)(即与集合的大小不成比例)。要获取“列”为空的所有键,您可以使用smembers
. 至少,这就是我解决类似问题的方式。
(我在列周围加上引号,因为在 redis 模型中,它们将是哈希字段,而不是您在 RDBMS 中认为的列)