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. ```
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
e5755c925a
Коммит
4e5cb16955
19
server/platform/services/cache/provider.go
поставляемый
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
|
||||
|
||||
Ссылка в новой задаче
Block a user