Skip to content

Commit 4c5804e

Browse files
author
Cosima Radu
committed
Update Ruby version to 2.7, enhance Redis command pipelining, and bump version to 2.4.2
1 parent 3940ebe commit 4c5804e

File tree

5 files changed

+19
-14
lines changed

5 files changed

+19
-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: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
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+
16
# v2.2.0
27

38
* 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: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,28 +6,29 @@
66
context 'expires_in' do
77
let(:key) { SecureRandom.uuid }
88
let(:value) { 'SomeValue' }
9+
let(:mock_redis) { instance_double('Redis::MultiConnection') }
910

1011
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)
12+
expect(mock_redis).to receive(:set).with("test:#{key}", "\"#{value}\"")
13+
expect(mock_redis).to receive(:expire).with("test:#{key}", 3_600)
1314
subject.public_send(method_name, key, value)
1415
end
1516

1617
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)
18+
expect(mock_redis).to receive(:set).with("test:#{key}", "\"#{value}\"")
19+
expect(mock_redis).to receive(:expire).with("test:#{key}", 3_600)
1920
subject.public_send(method_name, key, value, -200)
2021
end
2122

2223
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)
24+
expect(mock_redis).to receive(:set).with("test:#{key}", "\"#{value}\"")
25+
expect(mock_redis).to receive(:expire).with("test:#{key}", 3_600)
2526
subject.public_send(method_name, key, value, 0.456)
2627
end
2728

2829
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)
30+
expect(mock_redis).to receive(:set).with("test:#{key}", "\"#{value}\"")
31+
expect(mock_redis).to receive(:expire).with("test:#{key}", 20)
3132
subject.public_send(method_name, key, value, 20.123)
3233
end
3334
end

0 commit comments

Comments
 (0)