Skip to content

Commit 16449d9

Browse files
authored
Merge pull request #24 from Sage/build-ENG-2688
ENG-2688 - Resolve "Pipelining commands on a Redis instance..." warnings
2 parents 3940ebe + 4a096ea commit 16449d9

File tree

5 files changed

+24
-14
lines changed

5 files changed

+24
-14
lines changed

.github/workflows/rspec.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
- uses: actions/checkout@v3
2222
- uses: ruby/setup-ruby@v1
2323
with:
24-
ruby-version: 2.4
24+
ruby-version: 2.7
2525
bundler-cache: true
2626

2727
- name: Run tests

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
2+
# v2.4.2
3+
4+
* ENG-2688 - Resolve "Pipelining commands on a Redis instance is deprecated and will be removed in Redis 5.0.0." warnings
5+
* Update git workflow ruby-version to 2.7 to match .dockerfile
6+
17
# v2.2.0
28

39
* Alias `#get`, `#set`, and `#remove` to `#read`, `#write`, and `#delete`, so that `RedisCacheStore` and `OptionalRedisCacheStore` can be used anywhere that expects a `#read`, `#write`, `#delete` API e.g. `faraday-http-cache`.

lib/cache_store_redis/redis_cache_store.rb

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,10 +75,9 @@ def set(key, value, expires_in = DEFAULT_TTL)
7575
expire_value = expiry_int.positive? ? expiry_int : Integer(DEFAULT_TTL)
7676

7777
with_client do |client|
78-
client.multi do
79-
client.set(k, v)
80-
81-
client.expire(k, expire_value)
78+
client.multi do |pipeline|
79+
pipeline.set(k, v)
80+
pipeline.expire(k, expire_value)
8281
end
8382
end
8483
end

lib/cache_store_redis/version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
module CacheStoreRedis
2-
VERSION = '2.4.1'
2+
VERSION = '2.4.2'.freeze
33
end

spec/cache_store_redis_spec.rb

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,28 +6,33 @@
66
context 'expires_in' do
77
let(:key) { SecureRandom.uuid }
88
let(:value) { 'SomeValue' }
9+
let(:mock_redis) { instance_double('Redis::MultiConnection') }
10+
11+
before do
12+
allow(Redis::MultiConnection).to receive(:new).and_return(mock_redis)
13+
end
914

1015
it 'will always set a default TTL if one is not provided' do
11-
expect_any_instance_of(Redis).to receive(:set).with("test:#{key}", "\"#{value}\"")
12-
expect_any_instance_of(Redis).to receive(:expire).with("test:#{key}", 3_600)
16+
expect(mock_redis).to receive(:set).with("test:#{key}", "\"#{value}\"")
17+
expect(mock_redis).to receive(:expire).with("test:#{key}", 3_600)
1318
subject.public_send(method_name, key, value)
1419
end
1520

1621
it 'will always set a default TTL if an invalid one is provided' do
17-
expect_any_instance_of(Redis).to receive(:set).with("test:#{key}", "\"#{value}\"")
18-
expect_any_instance_of(Redis).to receive(:expire).with("test:#{key}", 3_600)
22+
expect(mock_redis).to receive(:set).with("test:#{key}", "\"#{value}\"")
23+
expect(mock_redis).to receive(:expire).with("test:#{key}", 3_600)
1924
subject.public_send(method_name, key, value, -200)
2025
end
2126

2227
it 'will always set a default TTL if an invalid one is provided' do
23-
expect_any_instance_of(Redis).to receive(:set).with("test:#{key}", "\"#{value}\"")
24-
expect_any_instance_of(Redis).to receive(:expire).with("test:#{key}", 3_600)
28+
expect(mock_redis).to receive(:set).with("test:#{key}", "\"#{value}\"")
29+
expect(mock_redis).to receive(:expire).with("test:#{key}", 3_600)
2530
subject.public_send(method_name, key, value, 0.456)
2631
end
2732

2833
it 'will always force the TTL to be an integer' do
29-
expect_any_instance_of(Redis).to receive(:set).with("test:#{key}", "\"#{value}\"")
30-
expect_any_instance_of(Redis).to receive(:expire).with("test:#{key}", 20)
34+
expect(mock_redis).to receive(:set).with("test:#{key}", "\"#{value}\"")
35+
expect(mock_redis).to receive(:expire).with("test:#{key}", 20)
3136
subject.public_send(method_name, key, value, 20.123)
3237
end
3338
end

0 commit comments

Comments
 (0)