java - 使用 Redisson 将数据从一个 Redis 集群迁移到另一个集群

标签 java redis redisson

我想以编程方式将数据从旧的 Redis 集群迁移到新的集群,所以我这样做了:

        legacyRedisClient.getKeys()
            .getKeys()
            .forEach(key -> {
                LOGGER.info("Redis Migration : Migrating key {}", key);
                Optional.of(legacyRedisClient.getBucket(key))
                        .filter(RObject::isExists)
                        .map(RBucket::get)
                        .ifPresent(value -> {
                            LOGGER.info("Redis Migration : Storing element with key {}", key);
                            RBucket<Object> bucket = encryptedRedisClient.getBucket(key);
                            bucket.set(value);
                            bucket.expire(48L, DAYS);
                        });
            });

问题在于,当我这样做时 RBucket::get ,Redisson 尝试使用不一定位于类路径中的类来解码值(因为它是由其他微服务设置的)。

有没有办法在Redisson中禁用解码?或者更好的方法来做到这一点?

最佳答案

使用ByteArrayCodec。示例:

RBucket<Object> bucket = encryptedRedisClient.getBucket(key, ByteArrayCodec.INSTANCE);
bucket.set(value);
bucket.expire(48L, DAYS);

关于java - 使用 Redisson 将数据从一个 Redis 集群迁移到另一个集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58447431/

相关文章:

java - Groovy:创建对象以添加到 LinkedHashMap 中

Docker Redis - 播种数据 - 无法通过 Dockerfile 或 shell 脚本执行 redis-cli

java - Redisson - RSortedSet

redis - RedissonClient.getSet ("my-set").size() 返回一个数字后,为什么该集合在下次运行之前显示为空?

java - 从其他外部 Spring Boot 应用程序调用 api

java - 如何设置 Primefaces 图表中轴标签的格式

java - Spring验证不执行

node.js - 运行 balloons.io 时出错

php - 在 PHP 中注销的决定

java - Redisson 捕获 key 过期事件