Redis类上有一些实例方法.它们在源代码中定义,它们可以工作.但他们没有出现在Redis#方法输出中!
require 'redis'
redis = Redis.new # => #<Redis client v3.0.2 for redis://127.0.0.1:6379/0>
redis.info['redis_version'] # => "2.6.4"
k = 'foo'
redis.setbit k, 1, 1
redis.setbit k, 3, 1
redis.setbit k, 11, 1
redis.bitcount k # => 3
redis.methods.grep(/bit/) # => [:setbit, :getbit]
# no bitcount in the methods!
方法定义:getbit,setbit,bitcount,bitop.
据我所知,bitcount / bitop应出现在方法中.但他们没有.有什么想法吗?
我需要将它们列在方法中,以便另一个gem工作(它定义了redis命令的代理方法,它从Redis#方法获得).
最佳答案 发布的gem版本没有明确定义这些方法,您可以通过检查已安装的源或redis.method来确认:bitcount
https://github.com/redis/redis-rb/blob/v3.0.2/lib/redis.rb
它们工作是因为缺少方法只是盲目地将它们传递给redis服务器.