redis中的键值对列表

时间:2012-01-09 22:49:07

标签: c# redis

是否可以在redis中包含键/值对列表?或者可能是一组键值对。

我想要的是具有以下计数器的日期时间戳列表:

1.1.12 -> 12
1.2.12 -> 1
1.3.12 -> 3

我希望能够使用以下方式获取范围:

得到范围1.1.12到1.2.12,我希望结果为13。

这可能吗?

我应该使用哪种结构?

这样做的正确方法是什么?

假设我想将时间戳记作为一个集合,每个时间戳将指向3-4个键值对,如下所示:

1.1.12 -> error : 1
          pass : 100
1.2.12 -> error : 3
          pass : 50
1.3.12 -> error : 12
          pass : 100

c#客户端是否支持此功能?

我的主要目标是能够存储此多值结构并能够查询。

1 个答案:

答案 0 :(得分:0)

我的建议是将日期/时间字符串转换为“自纪元以来的秒数”(但如果您需要比1970年到2038年更大的范围,可能使用64位值 - 并且可能使用不同的起点再次,根据您的申请要求)。

从那里我使用zset(“排序”或“得分”集,它支持使用ZRANGE和ZRANGEBY Redis操作/命令获取子集)。秒 - 自 - 你的纪元可以是得分,你的值可以是你喜欢的任何编码值(包括JSON或BSON编码的字典/哈希表)。或者它可以是一个简单的字符串,您可以将其用作Redis键(从而实现一层间接 - zset充当Redis键的索引)。如果您选择后一种方法,我建议您使用Redis存储的整数来为您的密钥提供唯一的序列ID ---这样就可以在并发进程/节点的可能面上创建ACID属性来创建这些间接键/值对)。