我正在使用API从Redis提取各种数据,并对它们执行不同的操作。对于位图和HLL,我无法执行此操作,因为它们都作为字符串存储在属于这些数据结构的键上并在它们上运行获取键,因此我无法区分返回的值是正常字符串键还是返回值HLL或位图。
是否有redis命令来标识返回值所属的基础数据结构?
答案 0 :(得分:1)
否,对于位图和HLL,无法获取该信息,因为redis不会存储该信息。可以想象,任何给定的字符串只能是某个字符串或位图。每个字符串也是有效的位图,每个位图都可以解释为字符串。
当然,您可以结合使用一些启发式方法,但是这些方法肯定会失败,而且很丑陋。
如果您可以控制数据定义,则可以在KEY中对此类信息进行编码。
(后面是未告知的答案)
是的,有TYPE
command:
redis> SET key1 "value"
"OK"
redis> LPUSH key2 "value"
(integer) 1
redis> SADD key3 "value"
(integer) 1
redis> TYPE key1
"string"
redis> TYPE key2
"list"
redis> TYPE key3
"set"