我想为每个标识符都有一个状态和列表,我的问题是我应该为每个标识符实现带有状态和列表(自定义列表)的redis哈希,还是为状态和队列列表构建一个哈希并使用标识符作为名称空间,我的观点 使用 redis 列表是否有任何优化或好处,或者我可以使用散列内的自定义列表。 为了说明更多:
'fw7qw8f6fqw7f' => { state: accpeted
my_list = [1 ,4]
}
或
state:fw7qw8f6fqw7f => state: accpeted
list:fw7qw8f6fqw7f => [1,4]
两者都有效,但我问的是效率哪个更好
这取决于...
如果您需要进行列表操作,例如llen、lpush、lpop,必须将列表存储为 Redis LIST。如果不需要做这些操作,可以将其存储为HASH字段,即将列表存储为字符串。
LIST 方案比 HASH 方案消耗更多内存。特别是,当你的列表很小时,Redis 有一些神奇的编码可以大大减少内存使用。
此外,使用 HASH 解决方案,当您需要取回整个列表时,它应该比 LIST 解决方案更节省时间。后一种解决方案需要逐个迭代列表,而前者只是将列表作为字符串返回。