redis-rb

Ruby · redis-rb 5.4.1 · Default negotiation

所列测试通过

测试连接设置

Redis standalone connection

测试目标:127.0.0.1:6379,用户名 default,测试密码 manual-test-only,默认数据库。该密码只用于一次性的本地测试容器。

已验证操作

范围限于下方程序中的确切 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

完整测试记录 · 可执行测试