知识积累:SpringBoot-data-Redis的RedisTemplate的opsForList,操作List<Object>集合的leftPushAll和rightAll问题;分页查询list
最近项目在用RedisTemplate的opsForList进行对象集合的存储并进行分页查询;可是当使用supportRedisTemplate.opsForList().rightPushAll(key, lists);默认走了Long rightPushAll(K var1, V… var2);试了很多种方式,将lists类型强转为Collection,将lists转为String[],最后都
·
最近项目在用RedisTemplate的opsForList进行对象集合的存储并进行分页查询;
可是当使用redisTemplate.opsForList().rightPushAll(key, lists);
默认走了Long rightPushAll(K var1, V… var2);
并没有走Long rightPushAll(K var1, Collections c);
试了多种方式:
- 将lists类型强转为Collection,
- 将lists转为String[],
最后都没有成功。只会存储一个整体的对象,导致无法使用range(),来进行分页查询。为了使用range()进行分页查询。
只能采取曲线救国的方案,通过循环调用redisTemplate.opsForList().rightPush(key, object);
最终redis里存的数据为list集合数据。
经过跟同事的讨论和分析,原因是由于我们的统一工具类的参数问题导致的,将工具类的入参定位List;上面问题已经得到解决:
再调用rightPushAll的时候。传给redisTemplate.opsForList().rightPushAll(key, object);的是object。把这个类型改为List即可。
顺利完成集合数据批量插入到redis的list结构。
传送门:
-------------欢迎各位留言交流,如有不正确的地方,请予以指正。【Q:981233589】
更多推荐
已为社区贡献5条内容
所有评论(0)