RedisTemplate expiration ne fonctionne pas

Je suis en train de tester expiration de la méthode dans RedisTemplate. Par exemple, j'magasin de session dans le redis, et que d'essayer de récupérer la session et vérifier que les valeurs sont les mêmes. Pour expiration de session j'utilise expirer() la méthode de redisTemplate et pour l'obtention d'expiration de session, j'ai utiliser getExpire() la méthode. Mais ça ne fonctionne pas. Comment puis-je tester la valeur, stockées dans le redis?

//without import and fields
public class Cache() {     

    private StringRedisTemplate redisTemplate;

    public boolean expireSession(String session, int duration) {
      return redisTemplate.expire(session, duration, TimeUnit.MINUTES);    
    } 
}

//Test class without imports and fields 
public class TestCache() {  

    private Cache cache = new Cache(); 
    @Test
    public void testExpireSession() {
        Integer duration = 16;
        String session = "SESSION_123";
        cache.expireSession(session, duration);
        assertEquals(redisTemplate.getExpire(session, TimeUnit.MINUTES), Long.valueOf(duration));    
    }    
}

mais test échoue avec AssertionError:

Prévu :16 Effectif :0

Mise à JOUR:
J'ai pensé, que getExpire() la méthode ne fonctionne pas, mais en fait expirer() méthode ne fonctionne pas. Elle renvoie false. redisTemplate est un printemps Bean qui autocâblés à la classe de test. Il existe de nombreuses autres méthodes de test dans TestCache classe qui fonctionne correctement.

  • La clé existe pas, vous voulez à la fin? Votre code ne contient pas de partie dans lequel une clé est créée. expire renvoie la valeur true si l'expiration de l'appliquer. Voir redis.io/commandes/pexpire pour plus de détails.
  • session, qui-je l'envoyer en tant que paramètre à redisTemplate.expire() est l'un des principaux String session = "SESSION_123";
  • Je voulais dire, si la touche "SESSION_123" existaient au moment de l'épreuve sur votre redis instance.
  • Elle doit exister. Dans mon code j'ai expiration de session avec la clé. Je commence redis serveur avant de la classe et de l'arrêter après la classe.
  • Je ne sais pas pourquoi, mais redisTemplate retour false de expire() méthode
InformationsquelleAutor Nikolas | 2015-05-25