Don*_*mmy 4 java spring redis spring-data-redis spring-boot
我正在使用 Spring Data Redis 进行缓存,并且将键作为对象而不是字符串进行缓存。如何以这种方式找到缓存中的所有键?
\n\n当我尝试使用StringRedisSerializer()我收到一个类转换异常,表示该对象无法转换为字符串。
当我尝试Jackson2JsonRedisSerializer,它抛出异常:
\n\n\n无法读取 JSON:意外字符(\'\xc2\xac\'(代码 172)):需要有效值(数字、字符串、数组、对象、\'true\'、\'false\' 或 \'null \')
\n
我怎样才能获得所有钥匙?
\n\n我通过缓存@Cacheable注释进行缓存。
@EnableCaching\npublic class RedisCacheConfig\n{\n public static final String REDIS_CACHE_MGR = "RedisCacheManager";\n\n @Value( "${spring.redis.cluster}" )\n private List<String> cluster;\n\n @Bean\n public JedisConnectionFactory redisConnectionFactory()\n {\n JedisConnectionFactory redisConnectionFactory = new JedisConnectionFactory(\n new RedisClusterConfiguration( cluster )\n );\n\n return redisConnectionFactory;\n }\n\n @Bean\n public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory cf)\n {\n\n RedisTemplate<String, String> redisTemplate = new RedisTemplate<>();\n redisTemplate.setConnectionFactory( cf );\n return redisTemplate;\n }\n\n @Bean\n public CacheManager redisCacheManager(RedisTemplate redisTemplate) throws EagleCacheException\n {\n RedisCacheManager cacheManager = new RedisCacheManager( redisTemplate );\n\n cacheManager.setDefaultExpiration( 3600 );\n\n return cacheManager;\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n
请用
redisTemplate.keys("*")
但在此之前,请确保您的 redisTemplate 使用正确的序列化器。如果是字符串键:
redisTemplate.setKeySerializer(new StringRedisSerializer())
| 归档时间: |
|
| 查看次数: |
8865 次 |
| 最近记录: |