Skip to content

Commit 628f852

Browse files
committed
service prefix for cache based on types.
1 parent c3afcac commit 628f852

2 files changed

Lines changed: 13 additions & 9 deletions

File tree

cacheable_list_test.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ func TestGetCacheableList_AllInCache(t *testing.T) {
4141
defer cleanup()
4242

4343
ctx := context.Background()
44-
cache := NewTypedRedisCache[testEntity](client)
44+
cache := NewTypedRedisCache[testEntity](client, "")
4545

4646
entity1 := testEntity{ID: "1", Name: "Entity 1", Value: 100}
4747
entity2 := testEntity{ID: "2", Name: "Entity 2", Value: 200}
@@ -69,7 +69,7 @@ func TestGetCacheableList_NoneInCache(t *testing.T) {
6969
defer cleanup()
7070

7171
ctx := context.Background()
72-
cache := NewTypedRedisCache[testEntity](client)
72+
cache := NewTypedRedisCache[testEntity](client, "")
7373

7474
entity1 := testEntity{ID: "1", Name: "Entity 1", Value: 100}
7575
entity2 := testEntity{ID: "2", Name: "Entity 2", Value: 200}
@@ -105,7 +105,7 @@ func TestGetCacheableList_PartialCache(t *testing.T) {
105105
defer cleanup()
106106

107107
ctx := context.Background()
108-
cache := NewTypedRedisCache[testEntity](client)
108+
cache := NewTypedRedisCache[testEntity](client, "")
109109

110110
entity1 := testEntity{ID: "1", Name: "Cached Entity", Value: 100}
111111
entity2 := testEntity{ID: "2", Name: "Repo Entity", Value: 200}
@@ -138,7 +138,7 @@ func TestGetCacheableList_RepositoryError(t *testing.T) {
138138
defer cleanup()
139139

140140
ctx := context.Background()
141-
cache := NewTypedRedisCache[testEntity](client)
141+
cache := NewTypedRedisCache[testEntity](client, "")
142142

143143
repo := &mockRepository{
144144
data: map[string]testEntity{},
@@ -155,7 +155,7 @@ func TestGetCacheableList_PartialRepositoryError(t *testing.T) {
155155
defer cleanup()
156156

157157
ctx := context.Background()
158-
cache := NewTypedRedisCache[testEntity](client)
158+
cache := NewTypedRedisCache[testEntity](client, "")
159159

160160
entity1 := testEntity{ID: "1", Name: "Cached Entity", Value: 100}
161161
err := cache.Set(ctx, "1", entity1)
@@ -177,7 +177,7 @@ func TestGetCacheableList_EmptyIDs(t *testing.T) {
177177
defer cleanup()
178178

179179
ctx := context.Background()
180-
cache := NewTypedRedisCache[testEntity](client)
180+
cache := NewTypedRedisCache[testEntity](client, "")
181181

182182
repo := &mockRepository{
183183
data: map[string]testEntity{},
@@ -194,7 +194,7 @@ func TestGetCacheableList_SomeNotFoundInRepository(t *testing.T) {
194194
defer cleanup()
195195

196196
ctx := context.Background()
197-
cache := NewTypedRedisCache[testEntity](client)
197+
cache := NewTypedRedisCache[testEntity](client, "")
198198

199199
entity1 := testEntity{ID: "1", Name: "Entity 1", Value: 100}
200200

redis_cache.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,12 @@ type TypedRedisCache[T any] struct {
115115

116116
// getTypeName returns the lowercase name of the type T.
117117

118-
func NewTypedRedisCache[T any](client *redis.Client) TypedCache[T] {
119-
return &TypedRedisCache[T]{RedisCache{client, GetTypeName[T]()}}
118+
func NewTypedRedisCache[T any](client *redis.Client, servicePrefix string) TypedCache[T] {
119+
prefix := GetTypeName[T]()
120+
if servicePrefix != "" {
121+
prefix = fmt.Sprintf("%s:%s", servicePrefix, prefix)
122+
}
123+
return &TypedRedisCache[T]{RedisCache{client, prefix}}
120124
}
121125

122126
func (r *TypedRedisCache[T]) Get(ctx context.Context, id string) (*T, error) {

0 commit comments

Comments
 (0)