set test 2 OK 127.0.0-6ren">
gpt4 book ai didi

redis - 为什么一个键在Redis中的编码是 "int",而在lua脚本中它的类型是 "string"?

转载 作者:可可西里 更新时间:2023-11-01 11:12:25 24 4
gpt4 key购买 nike

我在redis中使用lua脚本的时候遇到了一个看不懂的问题

例如,我有一个键“test”,它的值为 2,它的编码是 int:

127.0.0.1:6379> set test 2
OK
127.0.0.1:6379> object encoding test
"int"

但是当我在 lua 脚本中使用 key 时,它在 lua 中的类型变成了字符串:

127.0.0.1:6379> eval "local a = redis.call('get', 'test'); return type(a);" 0
"string"

为什么redis在lua中将int编码的key转成string?

最佳答案

SET 命令的值类型是 STRING,尽管它的内部编码是 INT(为了内存和性能效率)。

其实是基于Redis protocol ,有5种返回类型。你可以查看the manual对于每个命令的返回类型。还要检查 conversion between Lua and Redis data types .

关于redis - 为什么一个键在Redis中的编码是 "int",而在lua脚本中它的类型是 "string"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55570415/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com