redis-rb
Ruby · redis-rb 5.4.1 · Default negotiation
所列测试通过
测试连接设置
Redis standalone connection
测试目标:127.0.0.1:6379,用户名 default,测试密码 manual-test-only,默认数据库。该密码只用于一次性的本地测试容器。
已验证操作
- authenticated PING
- SET
- Unicode GET
- missing GET
- binary round trip
- HGET
- pipeline
- MULTI/EXEC
- Lua EVAL
范围限于下方程序中的确切 API 调用与断言。
可执行测试示例
此程序已在隔离 Docker 镜像中执行。它包含多个客户端分支;本页使用下面列出的参数。依赖和编译步骤位于测试目录的 Dockerfile 中。
ruby "/clients/ruby-client.rb"查看已执行的完整源代码
# Run: ruby ruby-client.rb. Fixture only.
require 'redis'
require 'json'
checks=[]
check=lambda{|name,actual,expected|raise "#{name}: #{actual.inspect}" unless actual==expected;checks<<name}
client=Redis.new(host:'127.0.0.1',port:6379,username:'default',password:'manual-test-only',timeout:5)
begin
check.call('authenticated PING',client.ping,'PONG')
check.call('SET',client.set('ruby:text','Hello 世界'),'OK')
check.call('Unicode GET',client.get('ruby:text'),'Hello 世界')
check.call('missing GET',client.get('ruby:missing'),nil)
client.set('ruby:binary',"\x00\xff\r\n".b)
check.call('binary round trip',client.get('ruby:binary').b,"\x00\xff\r\n".b)
client.hset('ruby:hash','field','value');check.call('HGET',client.hget('ruby:hash','field'),'value')
values=client.pipelined{|p|p.set('ruby:counter','1');p.incr('ruby:counter');p.get('ruby:counter')}
check.call('pipeline',values,['OK',2,'2'])
values=client.multi{|t|t.set('ruby:counter','3');t.incr('ruby:counter')}
check.call('MULTI/EXEC',values,['OK',4])
check.call('Lua EVAL',client.eval("return redis.call('GET',KEYS[1])",keys:['ruby:counter']),'4')
ensure
client.close
end
puts JSON.generate(library:'redis',version:Gem.loaded_specs['redis'].version.to_s,checks:checks,status:'passed')