chore: Added DB migration to flush redis (#9772)

This commit is contained in:
Nayan 2021-12-15 14:24:27 +06:00 committed by GitHub
parent ddedf985b5
commit f0a2cbd73f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 1 deletions

View File

@ -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<String, String> reactiveRedisOperations(ReactiveRedisConnectionFactory factory) {
Jackson2JsonRedisSerializer<String> serializer = new Jackson2JsonRedisSerializer<>(String.class);

View File

@ -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<String, String> reactiveRedisOperations) {
final String script =
"for _,k in ipairs(redis.call('keys','spring:session:sessions:*'))" +
" do redis.call('del',k) " +
"end";
final Flux<Object> flushdb = reactiveRedisOperations.execute(RedisScript.of(script));
flushdb.subscribe();
}
}