Как включить уведомления о пространстве ключей для ключей с истекшим сроком действия с помощью Spring Data Redis

#spring-boot #redis #spring-data #spring-data-redis

Вопрос:

Есть ли способ запустить следующую команду из Spring Data Redis, возможно, с помощью RedisTemplate ?

 $ redis-cli config set notify-keyspace-events Ex
 

Насколько я понимаю RedisTemplate , можно запускать сценарии lua, можно ли преобразовать вышеперечисленное в один?

Ответ №1:

Отвечая на мой собственный вопрос, выясняется, что нет необходимости запускать lua-скрипт:

При использовании нереактивного подключения Redis:

 RedisConnection conn = null;
try {
    conn = connectionFactory.getConnection();
    conn.setConfig("notify-keyspace-events", "Ex");
} finally {
    if (conn != null) {
        conn.close();
    }
}
 

При использовании реактивного подключения Redis:

 ReactiveRedisConnection conn = connectionFactory.getReactiveConnection();
        conn
                .serverCommands()
                .setConfig("notify-keyspace-events", "Ex")
                .filter(status -> status.equals("OK"))
                .doFinally(unused -> conn.close())
                .block(Duration.ofSeconds(5L));