Quantcast
Channel: Active questions tagged redis+java - Stack Overflow
Viewing all articles
Browse latest Browse all 2204

RedisTemplate (Spring) doesn't expire key after timeout

$
0
0

I have class for operations with Redis using StringRedisTemplate

public void addRoMap(String key, Boolean value) {    redisTemplate.boundHashOps("test").put(key, value.toString());    redisTemplate.expire(key, 5, TimeUnit.SECONDS);}public Map getMap() {    return redisTemplate.opsForHash().entries("test");}public void flush() {    redisTemplate.getConnectionFactory().getConnection().flushAll();}

I have test:

    @Testpublic void redisHashTest() throws InterruptedException {    wsRedisMessageSender.flush();    Map<String, String> map = (Map<String, String>) wsRedisMessageSender.getMap();    System.out.println(map);    wsRedisMessageSender.addRoMap("test1", false);    wsRedisMessageSender.addRoMap("test2", true);    Assertions.assertThat(wsRedisMessageSender.getMap().size()).isEqualTo(2);    map = (Map<String, String>) wsRedisMessageSender.getMap();    System.out.println(map);    Thread.sleep(10000);    map = (Map<String, String>) wsRedisMessageSender.getMap();    System.out.println(map);    Assertions.assertThat(wsRedisMessageSender.getMap().size()).isEqualTo(0);}

However, this test fails:

    {}   {test1=false, test2=true}   {test1=false, test2=true}Expecting:<2>to be equal to:<0>

Please, help me, why I still have values in my Hash after timeout?Also, will my Hash ("test") exist after all keys expired?


Viewing all articles
Browse latest Browse all 2204

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>