Redis 过期密钥事件为同一密钥生成两次

问题描述 投票:0回答:1

嗨,我是 redis 过期关键事件的新手。

在本地,仅针对不同的密钥过期生成一次通知。

我有 3 个密钥在不同时间到期。

但问题是消息侦听器在生产中为同一个密钥获取两次相同的事件。

在本地仅生成一次。

请帮助我。

我已经尝试过这个代码

@Override
    public void onMessage(Message message, byte[] bytes) {
        try {
            String key = new String(message.getBody());
@Bean
   RedisMessageListenerContainer keyExpirationListenerContainer(RedisConnectionFactory connectionFactory, ExpirationListener expirationListener) {
       RedisMessageListenerContainer listenerContainer = new RedisMessageListenerContainer();
       listenerContainer.setConnectionFactory(connectionFactory);
       listenerContainer.addMessageListener(expirationListener, new PatternTopic("__keyevent@*__:expired"));
       listenerContainer.setErrorHandler(e -> logger.error("There was an error in redis key expiration listener container", e));
       return listenerContainer;
   }
key spring-data-redis
1个回答
0
投票

我也面临同样的问题。

我正在使用 AWS 托管的 ElasticCache,目前我对此表示怀疑。在我使用独立 Redis 实例的其他环境中这不是问题。

我也在调试这个问题,如果我有任何更新,我会及时通知你。

© www.soinside.com 2019 - 2024. All rights reserved.