Skip to content

Commit 9a42b6f

Browse files
committed
use different redis keys for production / staging
This also replaces the `REDIS_MOVIE_SCORE_PREFIX` that was used to have a specific key prefix for the tests. We now use `KeyValueStore::KEY_PREFIX` that handles giving out a specific key for test, production and staging.
1 parent 295fe47 commit 9a42b6f

File tree

4 files changed

+25
-19
lines changed

4 files changed

+25
-19
lines changed

www/.env.test

Lines changed: 0 additions & 1 deletion
This file was deleted.

www/app/models/movie_score.rb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
module MovieScore
2-
KEY_PREFIX = ENV.fetch("REDIS_MOVIE_SCORE_PREFIX", "siwt_movie")
2+
KEY_PREFIX = "#{KeyValueStore::KEY_PREFIX}:score:"
33
STD_TTL = 3.days
44

55
def self.get(wiki_id)
@@ -29,11 +29,11 @@ def self.get_local(wiki_id)
2929
end
3030

3131
def self.save(wiki_id, scores, trailer_url, ttl: STD_TTL)
32-
REDIS.set(key(wiki_id), Oj.dump([scores, trailer_url]), ex: ttl)
32+
KeyValueStore.client.set(key(wiki_id), Oj.dump([scores, trailer_url]), ex: ttl)
3333
end
3434

3535
def self.load(wiki_id)
36-
value = REDIS.get(key(wiki_id))
36+
value = KeyValueStore.client.get(key(wiki_id))
3737
if value
3838
Oj.load(value)
3939
end
@@ -47,12 +47,12 @@ def self.fetch(wiki_id)
4747
end
4848

4949
def self.key(wiki_id)
50-
"#{KEY_PREFIX}_#{wiki_id}"
50+
"#{KEY_PREFIX}#{wiki_id}"
5151
end
5252

5353
def self.delete_all
54-
REDIS.scan_each(match: "#{KEY_PREFIX}_*") do |key|
55-
REDIS.del(key)
54+
KeyValueStore.client.scan_each(match: "#{KEY_PREFIX}:*") do |key|
55+
KeyValueStore.client.del(key)
5656
end
5757
end
5858
end

www/app/models/simple_store.rb

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,26 @@
11
module SimpleStore
2-
KEY_PREFIX = "siwt"
3-
42
def self.fetch(key)
53
key = self.key(key)
64

7-
value = REDIS.get(key)
5+
value = KeyValueStore.client.get(key)
86
return value if value
97

108
new_value = yield
119

1210
# Only one thread should compute + set
13-
REDIS.set(key, new_value, nx: true)
11+
KeyValueStore.client.set(key, new_value, nx: true)
1412

1513
# Return whichever value ended up stored
16-
REDIS.get(key)
14+
KeyValueStore.client.get(key)
1715
end
1816

1917
def self.delete(key)
2018
key = self.key(key)
2119

22-
REDIS.del(key)
20+
KeyValueStore.client.del(key)
2321
end
2422

2523
def self.key(key)
26-
"#{KEY_PREFIX}_#{key}"
24+
"#{KeyValueStore::KEY_PREFIX}:#{key}"
2725
end
2826
end

www/config/initializers/redis.rb

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
1-
REDIS = Redis.new(
2-
url: ENV["REDIS_URL"],
3-
port: ENV["REDIS_PORT"],
4-
db: ENV["REDIS_DB"]
5-
)
1+
module KeyValueStore
2+
KEY_PREFIX =
3+
begin
4+
prefix = ENV.fetch("APPLICATION_NAME").parameterize.underscore
5+
if Rails.env.test?
6+
prefix += "_test"
7+
end
8+
prefix
9+
end
10+
11+
def self.client
12+
@client ||= Redis.new
13+
end
14+
end

0 commit comments

Comments
 (0)