加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – Redis gem中的“Invisible”实例方法

发布时间:2020-12-17 02:15:09 所属栏目:百科 来源:网络整理
导读:Redis类上有一些实例方法.它们在源代码中定义,它们可以工作.但他们没有出现在Redis#方法输出中! require 'redis'redis = Redis.new # = #Redis client v3.0.2 for redis://127.0.0.1:6379/0redis.info['redis_version'] # = "2.6.4"k = 'foo'redis.setbit k
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,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服务器.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读