ruby - ruby 功能的最大数量?

标签 ruby function arity

我正在寻找一个有效的函数来清除基于 redis 的缓存。

我有一个方法调用,它从 redis 返回一些键:

$redis.keys("foo:*")

返回所有以“foo:”开头的键。接下来,我想删除这些键的所有值。

一种(内存密集型)方法是:

$redis.keys("foo:*").each do |key|
  $redis.del(key)
end

我想避免将所有键都加载到内存中,然后向 redis 服务器发出大量请求。

我喜欢的另一种方法是使用 splat 运算符:

keys = $redis.keys("foo:*")
$redis.del(*keys)

问题是我不知道 $redis.del 方法的最大数量是多少,也不知道任何 ruby​​ 方法,我似乎无法在网上找到它。

最大元数是多少?

最佳答案

@muistooshort 在评论中提出了一个很好的建议,结果证明是正确的,redis 驱动程序知道如何处理数组参数:

 # there are 1,000,000 keys of the form "foo:#{number}"
 keys = $redis.keys("foo:*")
 $redis.del(keys) # => 1000000

只需将一组键传递给$redis.del

关于ruby - ruby 功能的最大数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18259583/

相关文章:

ruby-on-rails - Ruby on Rails 4 - simple_form 多选输入

jquery - Rails & FilePicker gem - 如何获取上传文件的元数据?

ruby-on-rails - Ruby On Rails 如何与 Erlang 结合?

java - Arity.jar 中的语法异常

ruby - 用 method_missing 委托(delegate)的方法的数量

java - 可变参数中的元素数量

html - Rails 中的导航菜单

javascript - 如何使我的用户响应不区分大小写?

java - 处理(Java): How to make a plotted sine function look continuous instead of separate dots when the amplitude of the function increases

javascript - 使用 onkeyup 调用 javascript 函数