如何使用 Spring Data Redis 为过期密钥启用密钥空间通知
How to Enable Keyspace Notifications for Expired Keys using Spring Data Redis
有没有办法 运行 来自 Spring Data Redis 的以下命令,可能使用 RedisTemplate
?
$ redis-cli config set notify-keyspace-events Ex
我的理解是RedisTemplate
可以运行lua脚本,上面可以转换成一个吗?
回答我自己的问题,结果发现不需要 运行 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));
有没有办法 运行 来自 Spring Data Redis 的以下命令,可能使用 RedisTemplate
?
$ redis-cli config set notify-keyspace-events Ex
我的理解是RedisTemplate
可以运行lua脚本,上面可以转换成一个吗?
回答我自己的问题,结果发现不需要 运行 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));