Wenn ich Spring-Data-Redisis, es über zwei Probleme.Feder-Daten-Redis mit CacheManager
Das erste Problem ist, wenn ich Cache annation verwenden, um Daten zu laden, um Redis, aber ich kann nicht den Wert von redisTemplate erhalten, wird der Code als fließt:
@Bean
RedisTemplate<Object, Object> redisTemplate() {
RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<Object, Object>();
redisTemplate.setConnectionFactory(jedisConnectionFactory());
return redisTemplate;
}
@Bean
public RedisConnectionFactory jedisConnectionFactory() {
JedisConnectionFactory factory = new JedisConnectionFactory();
factory.setHostName("localhost");
factory.setPort(6379);
factory.setUsePool(true);
return factory;
}
@Bean
CacheManager cacheManager() {
RedisCacheManager cacheManager = new RedisCacheManager(redisTemplate());
cacheManager.setDefaultExpiration(86400);
return cacheManager;
}
Userservice als fließt:
@Cacheable("allUsers")
public List<UserModel> getAllUsers() {
logger.info("execute getAllUsers!");
return Arrays.asList(new UserModel("jason"), new UserModel("david"));
}
mein Testcode ist: alle
@Test
public void testCache() {
redisTemplate.delete("allUsers");
userService.getAllUsers(); // load user data
List<Object> users = redisTemplate.opsForList().range("allUsers", 0, -1); // get allUsers from redis
logger.info("get from template");
for(Object user : users) {
logger.info(((UserModel)user).getUsername());
}
logger.info("get from service");
for(UserModel user : userService.getAllUsers()) {
logger.info(user.getUsername());
}
und ich die Cache "ALLUSERS" gefunden in redis ist Benutzer ~ Schlüssel, aber ich kann auch keinen Wert mit diesem Schlüssel erhalten, wie kann ich den Wert von redisentemplate erhalten und warum der Schlüssel allUsers ~ keys in redis ist.
Das zweite Problem ist, ich einen Schlüssel aufrufen "mykey" von commond, und setzen Wert "mykey", und ich kann auch nicht null Wert von Java-Code, kann ich Wert durch commond erhalten. Wie ist das? Wenn die beiden Probleme die gleichen sind? Kennt jemand diese? Danke Fortschritt ^. ^.
Update meinen Code Version ist: Feder 4.1.6,
Feder-data-redis 1.7.0,
Jedis 2.8.1
redis 3.2.3