MM-62079: Using a cache prefix to isolate cache keys for each test (#30261)

```release-note
A new config setting CacheSettings.RedisCachePrefix has been added which can be used to add a prefix to all Redis cache keys.
```
Этот коммит содержится в:
Agniva De Sarker
2025-02-25 09:22:15 +05:30
коммит произвёл GitHub
родитель e5755c925a
Коммит 4e5cb16955
5 изменённых файлов: 23 добавлений и 13 удалений

19
server/platform/services/cache/provider.go поставляемый
Просмотреть файл

@@ -74,15 +74,17 @@ func (c *cacheProvider) Type() string {
}
type redisProvider struct {
client rueidis.Client
metrics einterfaces.MetricsInterface
client rueidis.Client
cachePrefix string
metrics einterfaces.MetricsInterface
}
type RedisOptions struct {
RedisAddr string
RedisPassword string
RedisDB int
DisableCache bool
RedisAddr string
RedisPassword string
RedisDB int
RedisCachePrefix string
DisableCache bool
}
// NewProvider creates a new CacheProvider
@@ -107,11 +109,14 @@ func NewRedisProvider(opts *RedisOptions) (Provider, error) {
if err != nil {
return nil, err
}
return &redisProvider{client: client}, nil
return &redisProvider{client: client, cachePrefix: opts.RedisCachePrefix}, nil
}
// NewCache creates a new cache with given opts
func (r *redisProvider) NewCache(opts *CacheOptions) (Cache, error) {
if r.cachePrefix != "" {
opts.Name = r.cachePrefix + ":" + opts.Name
}
rr, err := NewRedis(opts, r.client)
rr.metrics = r.metrics
return rr, err