From 58144fd3d2a1bb940690f582212350ca4a95ac50 Mon Sep 17 00:00:00 2001 From: David Ortiz Date: Mon, 4 Mar 2019 22:18:56 +0100 Subject: [PATCH 1/2] gemspec: add hiredis as a dev dependency --- async-redis.gemspec | 1 + 1 file changed, 1 insertion(+) diff --git a/async-redis.gemspec b/async-redis.gemspec index 64182f8..f925d7a 100644 --- a/async-redis.gemspec +++ b/async-redis.gemspec @@ -22,6 +22,7 @@ Gem::Specification.new do |spec| spec.add_development_dependency "async-rspec", "~> 1.1" spec.add_development_dependency "redis" + spec.add_development_dependency "hiredis" spec.add_development_dependency "benchmark-ips" spec.add_development_dependency "covered" From 59e8978fa731dd21b5c7dfefc905856053aea559 Mon Sep 17 00:00:00 2001 From: David Ortiz Date: Mon, 4 Mar 2019 22:19:37 +0100 Subject: [PATCH 2/2] performance_spec: add redis-rb with hiredis --- spec/async/redis/performance_spec.rb | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/spec/async/redis/performance_spec.rb b/spec/async/redis/performance_spec.rb index c462137..1395025 100644 --- a/spec/async/redis/performance_spec.rb +++ b/spec/async/redis/performance_spec.rb @@ -31,6 +31,7 @@ let(:endpoint) {Async::Redis.local_endpoint} let(:async_client) {Async::Redis::Client.new(endpoint)} let(:redis_client) {Redis.new} + let(:redis_client_hiredis) {Redis.new(driver: :hiredis)} it "should be fast to set keys" do Benchmark.ips do |benchmark| @@ -65,6 +66,16 @@ expect(redis_client.get(key)).to be == value end end + + benchmark.report("redis-rb (hiredis)") do |times| + key = keys.sample + value = times.to_s + + i = 0; while i < times; i += 1 + redis_client_hiredis.set(key, value) + expect(redis_client_hiredis.get(key)).to be == value + end + end benchmark.compare! end