redis的LPUSH列表操作接受的最大值是多少?

JJS*_*JJS 3 redis

Redis提供LPUSH操作。

LPUSH key value [value ...]
Run Code Online (Sandbox Code Playgroud)

单次操作最多支持多少个值?

Mar*_*kus 6

关于此: http: //redis.io/topics/data-types

\n\n
\n

列表的最大长度为 2^32 - 1 个元素(4294967295,每个列表超过 40 亿个元素)。

\n
\n\n

我打赌您也可以一次使用这么多的参数,但也许您的客户端会遇到超时。

\n\n

当您的问题与性能有关时,我想阅读/了解这很不错。

\n\n\n\n

更新

\n\n

tias - bash 明文解析器

\n\n
22:15 $ echo lpush works {1..1038} | redis-cli \n(integer) 1038\n\xe2\x9c\x94 ~ \n22:15 $ echo lpush worksnot {1..1039} | redis-cli \n(integer) 1038\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n(error) ERR unknown command \'1039\'\n\xe2\x9c\x94 ~ \n22:15 $ redis-cli \n127.0.0.1:6379> llen works\n(integer) 1038\n127.0.0.1:6379> llen worksnot\n(integer) 1038\n127.0.0.1:6379> llen worksnot\n
Run Code Online (Sandbox Code Playgroud)\n\n

所以看起来限制是 1038。

\n\n

lua响应

\n\n
> args = {\'lpush\', \'mylist\'}\n> for n = 1,100000 do\n>> table.insert(args, tostring(n))\n>> end\n> \n> resp = require("resp")\n> client = resp.new("127.0.0.1", 6379)\n> client:call(unpack(args))\n100000\n> client:call(\'llen\', \'mylist\')\n100000\n
Run Code Online (Sandbox Code Playgroud)\n\n

lua 100k 就可以了。1m太多了。stdin:1: too many results to unpacklua(不是redis!)由于最大堆栈大小(猜测)而遇到问题。

\n\n

我仍然敢打赌,您可以一次推送列表的最大长度……以防您的环境(编程语言、物理内存大小……)可以处理它。

\n