diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/configurations/RedisConfig.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/configurations/RedisConfig.java index 5bc038e7b0..0690e6b7f6 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/configurations/RedisConfig.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/configurations/RedisConfig.java @@ -3,6 +3,7 @@ package com.appsmith.server.configurations; import lombok.extern.slf4j.Slf4j; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; import org.springframework.data.redis.connection.ReactiveRedisConnectionFactory; import org.springframework.data.redis.core.ReactiveRedisOperations; import org.springframework.data.redis.core.ReactiveRedisTemplate; @@ -29,6 +30,7 @@ public class RedisConfig { return new ChannelTopic("appsmith:queue"); } + @Primary @Bean ReactiveRedisOperations reactiveRedisOperations(ReactiveRedisConnectionFactory factory) { Jackson2JsonRedisSerializer serializer = new Jackson2JsonRedisSerializer<>(String.class); diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/DatabaseChangelog.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/DatabaseChangelog.java index fd21900b84..f2a08d9545 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/DatabaseChangelog.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/DatabaseChangelog.java @@ -97,8 +97,11 @@ import org.springframework.data.mongodb.core.index.IndexOperations; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update; +import org.springframework.data.redis.core.ReactiveRedisOperations; +import org.springframework.data.redis.core.script.RedisScript; import org.springframework.util.CollectionUtils; import org.springframework.util.StreamUtils; +import reactor.core.publisher.Flux; import java.io.IOException; import java.nio.charset.Charset; @@ -3958,7 +3961,6 @@ public class DatabaseChangelog { ); } - @ChangeSet(order = "101", id = "add-google-sheets-plugin-name", author = "") public void addPluginNameForGoogleSheets(MongockTemplate mongockTemplate) { Plugin googleSheetsPlugin = mongockTemplate.findOne( @@ -4320,4 +4322,16 @@ public class DatabaseChangelog { ); }); } + + @ChangeSet(order = "102", id = "flush-spring-redis-keys", author = "") + public void clearRedisCache(ReactiveRedisOperations reactiveRedisOperations) { + final String script = + "for _,k in ipairs(redis.call('keys','spring:session:sessions:*'))" + + " do redis.call('del',k) " + + "end"; + final Flux flushdb = reactiveRedisOperations.execute(RedisScript.of(script)); + + flushdb.subscribe(); + } + }