首页 > 其他 > 详细

RedisTemplate 分页

时间:2018-07-26 11:25:19      阅读:515      评论:0      收藏:0      [点我收藏+]

利用spring redis的RedisTemplate进行分页:

场景:

现有项目若干,根据项目的创建时间(createTime)进行降序读取:

存储结构:

key:proList(list)

存放项目id

[

110,

111,

112

]

key:proInfo:{proId}(hash)

pro:110

{

id:110,

proName:p110,

createTime:"2019:01:03 04:23:35"

}

 

 

pro:111

{

id:111,

proName:p1111,

createTime:"2019:01:03 04:24:56"

}

 

 

 

pro:112

{

id:112,

proName:p112,

createTime:"2019:01:03 04:25:35"

}

 

分页方法:

public static <T> List<T> sortPageList(String key, String subKey, String by, boolean isDesc, boolean isAlpha, int off, int num) throws Exception {
SortQueryBuilder<String> builder = SortQueryBuilder.sort(key);
builder.by(subKey + "*->" + by);
builder.get("#");
builder.alphabetical(isAlpha);
if (isDesc)
builder.order(SortParameters.Order.DESC);
builder.limit(off, num);
List<String> cks = redisTemplate.sort(builder.build());
List<T> result = new ArrayList<T>();
for (String ck : cks) {
//得到项目对象 by(subKey+ck);
}
return result;

}

调用方法:
sortPageList("proList","pro:","createTime",true,false,0,20)//本次分页取前20条数据0-->19
需要注意到的是isAlpha参数

如果设置为true

将按照字幕顺序进行排序。

 

RedisTemplate 分页

原文:https://www.cnblogs.com/austinspark-jessylu/p/9370676.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!