Java で Redis の特定のデータに変更があったことを監視する
Javaでは、RedisのPub/Subを使用してRedisの特定のデータのリスニングが可能です。
まず、Javaのjedisライブラリを使用して Redis サーバーに接続する必要があります。次のコードを使用して Redis サーバーへの接続を行うことができます。
Jedis jedis = new Jedis("localhost", 6379);
次にRedisのメッセージをリスニングするための新しいスレッドを作成する必要があります。リスナーを作成するスレッドにはこのコードを使用できます。
Thread listenerThread = new Thread(new Runnable() {
@Override
public void run() {
JedisPubSub jedisPubSub = new JedisPubSub() {
@Override
public void onMessage(String channel, String message) {
// 处理接收到的消息
System.out.println("Received message: " + message);
}
@Override
public void onSubscribe(String channel, int subscribedChannels) {
System.out.println("Subscribed to channel: " + channel);
}
@Override
public void onUnsubscribe(String channel, int subscribedChannels) {
System.out.println("Unsubscribed from channel: " + channel);
}
};
jedis.subscribe(jedisPubSub, "your-channel");
}
});
listenerThread.start();
上のコードでは、JedisPubSubは抽象クラスなので、受け取ったメッセージを処理するためにメソッドをオーバーライドする必要があります。onMessageメソッドでは、受け取ったメッセージを処理できます。onSubscribeメソッドでは、チャンネルを購読するイベントを処理できます。
最後に、次のコードを使用して、Redisサーバにメッセージを配信できます。
jedis.publish("your-channel", "your-message");
「your-channel」というチャンネルにメッセージを投稿します。
Redis接続はJavaプログラムでアクティブな状態にしておく必要があります。そうでないと、サブスクライブしたメッセージを受信できません。