我对如何在ruby下使用r.evalsha有疑问。我可以在cli上得到调用redis的结果。显示错误:尝试连接本地“nid”(布尔值)
请告诉我。
谢谢您。

evalsha 0ca2da3beea9739f3d61798a36bd4d5ed56754ee 1 10.17.103.200

testredis.rb如下:
require 'rubygems'
require 'redis'
r = Redis.new(:host => '127.0.0.1', :port => '6379' )
$result = r.evalsha("0ca2da3beea9739f3d61798a36bd4d5ed56754ee", ['1'],    ['10.17.103.200'])
puts $result
r.quit()

最佳答案

ruby redis gem试图为您清理一些东西。你不需要传递参数的数目。evalsha的第二个参数是脚本参数数组。您的evalsha行应该如下所示:

$result = r.evalsha("0ca2da3beea9739f3d61798a36bd4d5ed56754ee", ['10.17.103.200'])

要从ruby中加载脚本,可以使用Redis#script
sha = r.script(:load, "return redis.call('incr', 'foo')")
r.evalsha(sha) # => 1
r.evalsha(sha) # => 2

关于ruby - 如何调用redis.evalsha,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40231343/

10-15 07:33