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')
测试环境与可复现证据
验证时间: 2026-09-21T11:15:27Z · Docker / Linux aarch64 · lavik 0.1.0-beta.1
存储与连接: io_uring · 临时文件、2 个工作线程、单机、明文 TCP、密码认证。此测试不衡量 NVMe 性能。
固定源码: 3955b98d43b312324aa8d52775df52cfb111c0d0
二进制 SHA-256: 8306b37ddf05023f85166a6aa2192b7084757e8defd342b602e6470244aca887
镜像: sha256:fd13690a1931b8abb31b1866baa2a08c7c38e6df93aa78883321d1d3c1cddd00