redisTemplate Pipelined 批量执行

Long len = redisTemplate.opsForList().size(CacheConstants.CACHE_LOG_LIST);
        if (len != null && len > 0) {
            long i = len / 1000 + 1;
            while (i > 0) {
                List pipelined = redisTemplate.executePipelined((RedisCallback<Object>) redisConnection -> {
                    redisConnection.openPipeline();
                    for (int i1 = 0; i1 < 1000; i1++) {
                        redisConnection.rPop(CacheConstants.CACHE_LOG_LIST.getBytes());
                    }
                    return null;
                });
                List<SysLog> sysLogs = new ArrayList<>();
                pipelined.forEach(item -> {
                    Map log = JSONObject.parseObject((String) item, Map.class);
                    if (null != log) {
                        SysLog sysLog = new SysLog();
                
                        sysLogs.add(sysLog);
                    }
                });
                sysLogService.insertList(sysLogs);
                logger.info("已插入  " + sysLogs.size());
                i--;
            }
        }
posted @ 2021-10-18 15:51  qwer78  阅读(408)  评论(0)    收藏  举报