From 0fed78c50c0935bddf077be69b9a0da151170dd7 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期一, 05 六月 2023 16:40:44 +0800 Subject: [PATCH] redis --- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/listener/RedisListener.java | 3 ++- ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/configure/MessageReceiver.java | 15 +++++++++++++++ ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/configure/RedisConfig.java | 24 ++++++++++++++++++++++++ ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/listener/KeyExpirationEventMessageListener.java | 2 +- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/listener/KeyspaceEventMessageListener.java | 2 +- 5 files changed, 43 insertions(+), 3 deletions(-) diff --git a/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/configure/MessageReceiver.java b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/configure/MessageReceiver.java new file mode 100644 index 0000000..8370070 --- /dev/null +++ b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/configure/MessageReceiver.java @@ -0,0 +1,15 @@ +package com.ruoyi.common.redis.configure; + + +import org.springframework.data.redis.connection.Message; +import org.springframework.data.redis.connection.MessageListener; + +public class MessageReceiver implements MessageListener { + + @Override + public void onMessage(Message message, byte[] pattern) { + String channel = new String(message.getChannel()); + String body = new String(message.getBody()); + System.out.println("接收到消息,channel:" + channel + ",message:" + body); + } +} diff --git a/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/configure/RedisConfig.java b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/configure/RedisConfig.java index 0fd5e0f..8eec9aa 100644 --- a/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/configure/RedisConfig.java +++ b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/configure/RedisConfig.java @@ -8,6 +8,9 @@ import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.listener.PatternTopic; +import org.springframework.data.redis.listener.RedisMessageListenerContainer; +import org.springframework.data.redis.listener.adapter.MessageListenerAdapter; import org.springframework.data.redis.serializer.StringRedisSerializer; /** @@ -20,6 +23,27 @@ @AutoConfigureBefore(RedisAutoConfiguration.class) public class RedisConfig extends CachingConfigurerSupport { + + + @Bean + RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory, MessageListenerAdapter listenerAdapter) { + RedisMessageListenerContainer container = new RedisMessageListenerContainer(); + container.setConnectionFactory(connectionFactory); + container.addMessageListener(listenerAdapter, new PatternTopic("__keyevent@"+"0"+"__:expired")); + return container; + } + + @Bean + MessageListenerAdapter listenerAdapter(MessageReceiver receiver) { + return new MessageListenerAdapter(receiver, "receiveMessage"); + } + + @Bean + MessageReceiver receiver() { + return new MessageReceiver(); + } + + @Bean @SuppressWarnings(value = { "unchecked", "rawtypes" }) public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory connectionFactory) diff --git a/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/listener/KeyExpirationEventMessageListener.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/listener/KeyExpirationEventMessageListener.java similarity index 97% rename from ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/listener/KeyExpirationEventMessageListener.java rename to ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/listener/KeyExpirationEventMessageListener.java index 8d0be22..cddc092 100644 --- a/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/listener/KeyExpirationEventMessageListener.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/listener/KeyExpirationEventMessageListener.java @@ -3,7 +3,7 @@ // (powered by FernFlower decompiler) // -package com.ruoyi.common.redis.listener; +package com.ruoyi.system.listener; import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.ApplicationEventPublisherAware; diff --git a/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/listener/KeyspaceEventMessageListener.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/listener/KeyspaceEventMessageListener.java similarity index 98% rename from ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/listener/KeyspaceEventMessageListener.java rename to ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/listener/KeyspaceEventMessageListener.java index e4c2047..f5960cb 100644 --- a/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/listener/KeyspaceEventMessageListener.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/listener/KeyspaceEventMessageListener.java @@ -3,7 +3,7 @@ // (powered by FernFlower decompiler) // -package com.ruoyi.common.redis.listener; +package com.ruoyi.system.listener; import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.InitializingBean; diff --git a/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/listener/RedisListener.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/listener/RedisListener.java similarity index 93% rename from ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/listener/RedisListener.java rename to ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/listener/RedisListener.java index aafd037..3e539d5 100644 --- a/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/listener/RedisListener.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/listener/RedisListener.java @@ -1,4 +1,4 @@ -package com.ruoyi.common.redis.listener; +package com.ruoyi.system.listener; import com.ruoyi.common.core.utils.DateUtils; @@ -7,6 +7,7 @@ import org.springframework.data.redis.connection.Message; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.ValueOperations; +import org.springframework.data.redis.listener.KeyExpirationEventMessageListener; import org.springframework.data.redis.listener.RedisMessageListenerContainer; import org.springframework.stereotype.Component; -- Gitblit v1.7.1