RedisTemplate批量获取值

2022-10-31 16:25:24 浏览数 (1)

multiGet方式

代码语言:javascript复制
    /**
     * 同时获取redis多个key值
     * @author www.itze.cn
     **/
    public List<Object> mGetTypeGetValue(Set matchKey) {
        try {
            return redisTemplate.opsForValue().multiGet(matchKey);
        } catch (Exception e) {
            log.info("异常:", e);
            e.printStackTrace();
        }
        return null;
    }

plpeline方式,推荐使用该方法

代码语言:javascript复制
    /**
     * 批量获取key值对应的Value
     * @author www.itze.cn
     * @param matchKey
     * @return
     */
    public List<Object> pipeLineTypeGetValue(Set<String> matchKey) {
        return redisTemplate.executePipelined((RedisCallback<Object>) connection -> {
            StringRedisConnection conn = (StringRedisConnection) connection;
            for (String key : matchKey) {
                conn.get(key);
            }
            return null;
        });
    }

提示

plpeline方式共享一个连接,查询返回的结果,和键的顺序是一一对应的,如果没查到,会返回null值

可以结合文章:RedisTemplate使用Redis scan,批量获取Redis key方法使用

0 人点赞