我正在使用 redis 缓存来存储要缓存的数据。要存储为键的数据类型是数字类型。redis 会自动将该值强制转换为字符串类型。
127.0.0.1:6379> sismember def 34
(integer) 1
127.0.0.1:6379> sismember def 34.
(integer) 0
127.0.0.1:6379> sismember def 34.0
(integer) 0
127.0.0.1:6379> sismember def 3.4
(integer) 1
127.0.0.1:6379> smembers def 34.0
(error) ERR wrong number of arguments for 'smembers' command
127.0.0.1:6379> sadd def 34.0
(integer) 1
127.0.0.1:6379> smembers def
1) "34"
2) "34.0"
3) "3.4"
我知道这个与我要问的问题相关的问题已经在Difference between storage Integers and Strings in Redis提出,但它没有令人满意的答案。
所以,我的问题是,redis 不支持将整数存储为键,尽管它们是不可变的?现在允许非 str 不可变值作为 redis 中的键是否有任何性能/架构原因。
提前致谢。