如何在Redis Cloud for Heroku应用程序上启用notify-keyspace-events?

时间:2015-10-16 20:31:40

标签: heroku jedis

我正在为我的一个Heroku java应用程序使用Redis Cloud插件。我想从我的应用程序中收听关键空间事件。我尝试在Jedis客户端上设置配置,但我没有收到任何通知

    URI redisUri = new URI(REDIS_CLOUD_URL);
    JedisPool pool = new JedisPool(new JedisPoolConfig(),
            redisUri.getHost(),
            redisUri.getPort(),
            Protocol.DEFAULT_TIMEOUT,
            redisUri.getUserInfo().split(":",2)[1]);
    pool.getResource().getClient().configSet("notify-keyspace-events", "K$");

使用嵌入式redis服务器时,我会执行以下操作并收到通知。

    RedisServer redisServer = RedisServer.builder().port(6379)
            .setting("notify-keyspace-events K$")
            .build();
    redisServer.start();

我想在Redis Cloud上设置类似的配置。是否有用于Redis Cloud或Jedis API的CLI来执行相同的操作?

1 个答案:

答案 0 :(得分:0)

您可以在运行时更改一些Redis配置。我建议您在应用程序通过Redis客户端启动时立即设置配置变量:(node_redis示例:)

var client = redis.createClient();
client.config("SET", "notify-keyspace-events", "K$");

要查看您可以指定的事件,请查看此处:Redis-Notifications