Thursday, 31 March 2016

Redis Keyspace Notifications, Java example

Reff: http://redis.io/topics/notifications

dependancies :  redis.clients:jedis:2.7.2

To set notify-keyspace-events 
Command: redis-cli config set notify-keyspace-events KEA

Subscriber.java

package com.vijaysy.notification;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPubSub;

/**
 * Created by vijaysy on 31/03/16.
 */
public class Subscriber {
    public static void main(String[] args) {
        /*  JedisPool pool = new JedisPool(new JedisPoolConfig(), "localhost");
            Jedis jedis1 = pool.getResource();
            jedis1.psubscribe(new NotificationListener(), "__key*__:RT*");  */
        Jedis jedis = new Jedis("localhost");
        jedis.psubscribe(new JedisPubSub() {
            @Override
            public void onPSubscribe(String pattern, int subscribedChannels) {
                System.out.println("onPSubscribe " + pattern + " " + subscribedChannels);
            }

            @Override
            public void onPMessage(String pattern, String channel, String message) {
                System.out.print("[Pattern:" + pattern + "]");
                System.out.print("[Channel: " + channel + "]");
                System.out.println("[Message: " + message + "]");
            }
        }, "__key*__:RT*");

    }
}

TestNotification.java

package com.vijaysy.notification;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

/**
 * Created by vijay.yala on 31/03/16.
 */
public class TestNotifications {
    public static void main(String[] args) {
        JedisPool pool = new JedisPool(new JedisPoolConfig(), "localhost");
        Jedis jedis = pool.getResource();
        jedis.set("RTnotify", "umq");
        jedis.set("notify", "umq");
        jedis.set("notify1", "umq");
        jedis.set("RTnotify1", "umq");
        jedis.expire("RTnotify", 10); //in Seconds

    }
}

No comments:

Post a Comment