草庐IT

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

coder 2023-07-18 原文

Redis 提供 LPUSH操作。

LPUSH key value [value ...]

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

最佳答案

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

The max length of a list is 2^32 - 1 elements (4294967295, more than 4 billion of elements per list).

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

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

更新

tias - bash 明文解析器

22:15 $ echo lpush works {1..1038} | redis-cli 
(integer) 1038
✔ ~ 
22:15 $ echo lpush worksnot {1..1039} | redis-cli 
(integer) 1038
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
(error) ERR unknown command '1039'
✔ ~ 
22:15 $ redis-cli 
127.0.0.1:6379> llen works
(integer) 1038
127.0.0.1:6379> llen worksnot
(integer) 1038
127.0.0.1:6379> llen worksnot

所以看起来限制是 1038。

lua 响应

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

100k 对 lua 没问题。 1m 太多了。 lua(不是 redis!)遇到 stdin:1: too many results to unpack 因为最大堆栈大小(猜测)。

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

关于redis - redis 的 LPUSH 列表操作接受的最大值是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35582647/

有关redis - redis 的 LPUSH 列表操作接受的最大值是多少?的更多相关文章

  1. ruby - RVM 使用列表[0] - 2

    是否有类似“RVMuse1”或“RVMuselist[0]”之类的内容而不是键入整个版本号。在任何时候,我们都会看到一个可能包含5个或更多ruby的列表,我们可以轻松地键入一个数字而不是X.X.X。这也有助于rvmgemset。 最佳答案 这在RVM2.0中是可能的=>https://docs.google.com/document/d/1xW9GeEpLOWPcddDg_hOPvK4oeLxJmU3Q5FiCNT7nTAc/edit?usp=sharing-知道链接的任何人都可以发表评论

  2. ruby - 可以通过多少种方法将方法添加到 ruby​​ 对象? - 2

    当谈到运行时自省(introspection)和动态代码生成时,我认为ruby​​没有任何竞争对手,可能除了一些lisp方言。前几天,我正在做一些代码练习来探索ruby​​的动态功能,我开始想知道如何向现有对象添加方法。以下是我能想到的3种方法:obj=Object.new#addamethoddirectlydefobj.new_method...end#addamethodindirectlywiththesingletonclassclass这只是冰山一角,因为我还没有探索instance_eval、module_eval和define_method的各种组合。是否有在线/离线资

  3. ruby - 如何使用 Selenium Webdriver 根据 div 的内容执行操作? - 2

    我有一个使用SeleniumWebdriver和Nokogiri的Ruby应用程序。我想选择一个类,然后对于那个类对应的每个div,我想根据div的内容执行一个Action。例如,我正在解析以下页面:https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=puppies这是一个搜索结果页面,我正在寻找描述中包含“Adoption”一词的第一个结果。因此机器人应该寻找带有className:"result"的div,对于每个检查它的.descriptiondiv是否包含单词“adoption

  4. ruby-on-rails - 如何处理 Grape 中特定操作的过滤器之前? - 2

    我正在我的Rails项目中安装Grape以构建RESTfulAPI。现在一些端点的操作需要身份验证,而另一些则不需要身份验证。例如,我有users端点,看起来像这样:moduleBackendmoduleV1classUsers现在如您所见,除了password/forget之外的所有操作都需要用户登录/验证。创建一个新的端点也没有意义,比如passwords并且只是删除password/forget从逻辑上讲,这个端点应该与用户资源。问题是Grapebefore过滤器没有像except,only这样的选项,我可以在其中说对某些操作应用过滤器。您通常如何干净利落地处理这种情况?

  5. ruby-on-rails - 在 Ruby on Rails 中发送响应之前如何等待多个异步操作完成? - 2

    在我做的一些网络开发中,我有多个操作开始,比如对外部API的GET请求,我希望它们同时开始,因为一个不依赖另一个的结果。我希望事情能够在后台运行。我找到了concurrent-rubylibrary这似乎运作良好。通过将其混合到您创建的类中,该类的方法具有在后台线程上运行的异步版本。这导致我编写如下代码,其中FirstAsyncWorker和SecondAsyncWorker是我编写的类,我在其中混合了Concurrent::Async模块,并编写了一个名为“work”的方法来发送HTTP请求:defindexop1_result=FirstAsyncWorker.new.async.

  6. ruby - 使用 Ruby,计算 n x m 数组的每一列中有多少个 true 的简单方法是什么? - 2

    给定一个nxmbool数组:[[true,true,false],[false,true,true],[false,true,true]]有什么简单的方法可以返回“该列中有多少个true?”结果应该是[1,3,2] 最佳答案 使用转置得到一个数组,其中每个子数组代表一列,然后将每一列映射到其中的true数:arr.transpose.map{|subarr|subarr.count(true)}这是一个带有inject的版本,应该在1.8.6上运行,没有任何依赖:arr.transpose.map{|subarr|subarr.in

  7. ruby - 在好的 Ruby 代码中没有注释是否被认为是可以接受的? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭5年前。Improvethisquestion我审查了一些用Ruby编写的专业代码,没有发现任何评论。代码读起来相当清晰,但没有self记录。我应该期望专业编写的Ruby代码有注释吗?或者,是否有一些Ruby原则认为注释不是必需的?

  8. Ruby on Rails regexp equals-tilde 与 array include 用于检查选项列表 - 2

    我正在使用Rails3.2.3和Ruby1.9.3p0。我发现我经常需要确定某个字符串是否出现在选项列表中。看来我可以使用Ruby数组.includemethod:或正则表达式equals-tildematchshorthand用竖线分隔选项:就性能而言,一个比另一个好吗?还有更好的方法吗? 最佳答案 总结:Array#include?包含String元素,在接受和拒绝输入时均胜出,对于您的示例只有三个可接受的值。对于要检查的更大的集合,看起来Set#include?和String元素可能会获胜。如何测试我们应该根据经验对此进行测试

  9. ruby - 在 Ruby 中是否有一种惯用的方法来操作 2 个数组? - 2

    a=[3,4,7,8,3]b=[5,3,6,8,3]假设数组长度相同,是否有办法使用each或其他一些惯用方法从两个数组的每个元素中获取结果?不使用计数器?例如获取每个元素的乘积:[15,12,42,64,9](0..a.count-1).eachdo|i|太丑了...ruby1.9.3 最佳答案 使用Array.zip怎么样?:>>a=[3,4,7,8,3]=>[3,4,7,8,3]>>b=[5,3,6,8,3]=>[5,3,6,8,3]>>c=[]=>[]>>a.zip(b)do|i,j|c[[3,5],[4,3],[7,6],

  10. ruby-on-rails - 如何让 Rails View 返回其关联的操作名称? - 2

    我有一个非常简单的Controller来管理我的Rails应用程序中的静态页面:classPagesController我怎样才能让View模板返回它自己的名字,这样我就可以做这样的事情:#pricing.html.erb#-->"Pricing"感谢您的帮助。 最佳答案 4.3RoutingParametersTheparamshashwillalwayscontainthe:controllerand:actionkeys,butyoushouldusethemethodscontroller_nameandaction_nam

随机推荐