Spring环境下RedisTemplate同时配置两个数据源的数据进行同步数据

Posted Acmen-zym

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring环境下RedisTemplate同时配置两个数据源的数据进行同步数据相关的知识,希望对你有一定的参考价值。

大概执行逻辑

1、从第一个库中获取需要同步的资源存入到map中 ,一个Redis的配置是在yml配置文件中

2、循环map然后配置新的连接库,配置完毕后将数据进行缓存

    @Autowired
    private ItemPropsRedis propsRedis;
    private List<Long> numIids = Lists.newArrayList(50000697L, 162103L, 50011277L,
            50012042L, 50012027L, 201309706L, 50011165L, 122654005L, 50013878L,
            50012010L, 162703L, 50020835L, 50010817L, 50012028L, 50025883L, 122690003L,
            50012825L, 50012019L);

    public void syncRedisDate() {
        Map<Long, List<ItemProp>> map = new LinkedHashMap<>();
        for (Long cid : cids) {//循环获取第一个Redis中的缓存数据
            List<ItemProp> itemProps = propsRedis.getItemProps(cid);
            if (CollectionUtils.isEmpty(itemProps)) continue;
            map.put(cid, itemProps);//数据存入map中
        }
        for (Map.Entry<Long, List<ItemProp>> entry : map.entrySet()) {
            save(entry.getKey().toString(), entry.getValue());//开始同步到另外一个Redis中
        }
    }

 private void save(String cid, List<ItemProp> itemProps) {
        JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory();
        jedisConnectionFactory.setHostName("localhost");
        jedisConnectionFactory.setPassword("password");
        jedisConnectionFactory.setPort(6479);
        jedisConnectionFactory.setDatabase(0);
        jedisConnectionFactory.afterPropertiesSet();
        RedisTemplate redisTemplate = new RedisTemplate();
        redisTemplate.setConnectionFactory(jedisConnectionFactory);
        redisTemplate.afterPropertiesSet();//更新配置信息
        ValueOperations<String, List<ItemProp>> operations = redisTemplate.opsForValue();
        System.out.println("itemProps = " + itemProps.size());
        operations.set(cid, itemProps);
        List<ItemProp> itemProps2 = operations.get(cid);
        System.out.println("itemProps2 = " + itemProps2.size());
    }

 

以上是关于Spring环境下RedisTemplate同时配置两个数据源的数据进行同步数据的主要内容,如果未能解决你的问题,请参考以下文章

180611-Spring之RedisTemplate配置与使用

spring 的redis操作类RedisTemplate

Spring RedisTemplate批量插入

Spring RedisTemplate操作-事务操作

Spring RedisTemplate操作-哈希操作

Spring RedisTemplate操作-String操作