Azure Redis 缓存是否允许我设置一个函数,以便在缓存中的某个键过期时可靠地触发?
我在日志文件中收到缓存警告,但不确定原因。
我的缓存覆盖:
CACHE_CONFIG = {
'CACHE_TYPE': 'RedisCache',
'CACHE_DEFAULT_TIMEOUT': 86400,
'CACHE_KEY_PREFIX': 'superset_',
'CACHE_REDIS_HOST': 'localhost',
'CACHE_REDIS_PORT': 6379,
'CACHE_REDIS_DB': 1,
'CACHE_REDIS_URL': 'redis://localhost:6379/1'
}
Run Code Online (Sandbox Code Playgroud)
我也尝试过redis而不是RedisCache
日志语句:
2022-05-06 15:03:27,118:INFO:root:配置的类型为 <class 'superset.utils.log.DBEventLogger'> 的事件记录器回退到内置缓存,该缓存将数据存储在元数据数据库中,用于以下缓存:
FILTER_STATE_CACHE_CONFIG. 建议使用RedisCache,MemcachedCache或另一个用于生产部署的专用缓存后端 2022-05-06 15:03:27,123:WARNING:superset.utils.cache_manager:回退到将数据存储在元数据数据库中的内置缓存,对于以下缓存:FILTER_STATE_CACHE_CONFIG. 建议使用RedisCache或MemcachedCache其他用于生产部署的专用缓存后端 回退到内置缓存,将数据存储在元数据数据库中,用于以下缓存:EXPLORE_FORM_DATA_CACHE_CONFIG。建议使用RedisCache或MemcachedCache其他专用缓存后端进行生产部署
当我将一些对象写入 Redis 时,我可以获得不同的内存使用统计信息。我想了解这是如何发生的。
简单的例子:
127.0.0.1:6379> set a 1
OK
127.0.0.1:6379> MEMORY usage a
(integer) 49
127.0.0.1:6379> set a "1"
OK
127.0.0.1:6379> MEMORY usage a
(integer) 49
127.0.0.1:6379> set a \x01 <<<< Message packed of number 1
OK
127.0.0.1:6379> MEMORY usage a
(integer) 55
127.0.0.1:6379> set a '\x01' <<<< Message pack of number 1 but added ''
OK
127.0.0.1:6379> MEMORY usage a
(integer) 55
127.0.0.1:6379> set a "\x01" <<<<< Message pack of number 1 but added ""
OK
127.0.0.1:6379> MEMORY usage …Run Code Online (Sandbox Code Playgroud) 我正在使用 Spring Boot 版本 2.1.8.RELEASE 开发 Spring Boot 应用程序。我需要构建自定义 RedisCacheManager。
RedisCacheManager如下。
@EnableCaching
@Configuration
class CacheConfig {
@Bean
fun redisCacheManager(lettuceConnectionFactory: RedisConnectionFactory): RedisCacheManager? {
val redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig()
.entryTtl(Duration.ofHours(1))
return RedisCacheManager.RedisCacheManagerBuilder
.fromConnectionFactory(lettuceConnectionFactory)
.cacheDefaults(redisCacheConfiguration)
.build()
}
}
Run Code Online (Sandbox Code Playgroud)
在我的服务中,我使用 @Cacheble 缓存响应。看:
@Cacheable(cacheNames = ["cached_sample"])
fun getAllSample(): List<SampleRecord> {
return auditableRepository.findAll()
}
Run Code Online (Sandbox Code Playgroud)
模型我缓存:
data class SampleRecord(
@ApiModelProperty(readOnly = true)
val id: Long? = null,
@ApiModelProperty(readOnly = true)
val active: Boolean? = null,
@ApiModelProperty(readOnly = true)
val createdDate: Instant? = null,
val param: String
): Serializable …Run Code Online (Sandbox Code Playgroud) 我想通过 docker 使用 Redis 进行缓存,但出现此错误。
django.core.cache.backends.base.InvalidCacheBackendError: Could not find backend 'django.core.cache.backends.redis.RedisCache': No module named 'django.core.cache.backends.redis'
Run Code Online (Sandbox Code Playgroud)
我的缓存设置是这样的
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.redis.RedisCache',
'LOCATION': 'redis://127.0.0.1:6379',
}
}
Run Code Online (Sandbox Code Playgroud)
我从 Django 文档中获取了它们。
我使用这个命令在 docker 中启动一个 Redis 实例。
docker run --name some-redis -d redis
Run Code Online (Sandbox Code Playgroud) 使用 symfony 4.3,我配置了一个缓存池,它应该为缓存项目启用 TagAwarable。配置是这样的:
framework:
cache:
#app: cache.adapter.redis
default_redis_provider: 'redis://%env(REDIS_HOST)%:%env(int:REDIS_PORT)%'
pools:
redis.cache:
adapter: '%framework_cache_adapter%'
provider: 'redis://%env(REDIS_HOST)%:%env(int:REDIS_PORT)%'
default_lifetime: '%framework_cache_lifetime%'
tags: true
Run Code Online (Sandbox Code Playgroud)
在代码中,使用依赖注入,我使用池名称检索 CacheInterface 并尝试标记它,这会引发以下异常:
缓存项“appSettings”来自非标记感知池:您无法标记它。
代码如下所示:
public function __construct(EntityManagerInterface $em, CacheInterface $redisCache)
{
$this->m_cache = $redisCache;
$this->m_entityManage = $em;
}
public function getKey(string $key) : ?string
{
$appSettings = $this->m_cache->get(self::CACHE_KEY, function (ItemInterface $item) {
$item->expiresAfter(3600);
$item->tag([ 'settings', 'app_cache' ]);
return $settings;
});
return $appSettings[$key] ?? null;
}
Run Code Online (Sandbox Code Playgroud)
我尝试了不同的方法无济于事,不知道如何从这里开始。
感谢您对如何标记项目的任何帮助。
redis-cache ×6
redis ×2
django ×1
docker ×1
memory ×1
php ×1
redis-cli ×1
spring-boot ×1
spring-cache ×1
spring-data ×1
symfony4 ×1