sql >> Databáze >  >> NoSQL >> Redis

Vypršení platnosti RedisTemplate nefunguje

Nastavil jsem následující kód k provedení testu na getExpire() (jedis 2.5.2, spring-data-redis 1.4.2.RELEASE):

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = DemoApplication.class)
public class DemoApplicationTests {

    @Autowired
    private RedisTemplate<String, String> template;

    @Test
    public void contextLoads() {

        template.getConnectionFactory().getConnection().flushAll();

        assertFalse(template.hasKey("key"));
        assertFalse(template.expire("key", 10, TimeUnit.MINUTES));
        assertEquals(0, template.getExpire("key", TimeUnit.MINUTES).longValue());

        template.opsForHash().put("key", "hashkey", "hashvalue");

        assertTrue(template.hasKey("key"));
        assertTrue(template.expire("key", 10, TimeUnit.MINUTES));
        assertTrue(template.getExpire("key", TimeUnit.MINUTES) > 8);
    }

}

V závislosti na vaší konfiguraci Redis budou všechna data Redis odstraněna, pokud restartujete instanci Redis.

Měli byste také přidat výraz do expireSession (assertTrue(cache.expireSession(session, duration)); ), abychom se ujistili, že vypršení platnosti fungovalo.




  1. Budování škálovatelného procesu pomocí NiFi, Kafka a HBase na CDP

  2. Meteorická metoda vs. pravidla zakázat/povolit

  3. Automatické zapojení Spring Boot redisTemplate se nezdařilo

  4. Jak spravovat uživatele a ověřování v MongoDB