利用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 分页的更多相关文章

  1. Redis使用场景一,查询出的数据保存到Redis中,下次查询的时候直接从Redis中拿到数据。不用和数据库进行交互。

    maven使用: <!--redis jar包--> <dependency> <groupId>redis.clients</groupId> < ...

  2. spring boot整合reids 然后实现缓存分页(方法之一) 以及RedisTemplate存到reids 里面get 就消失的坑

    业务需求 首页 实现缓存分页 spring boot 整合redis   (我的是2.0.3版本的) 在pom 文件写上依赖包即可 <dependency><!--依赖包--> ...

  3. 如何使用RedisTemplate访问Redis数据结构

    RedisTemplate介绍 spring封装了RedisTemplate对象来进行对redis的各种操作,它支持所有的 redis 原生的api. RedisTemplate在spring代码中的 ...

  4. 在Java中使用redisTemplate操作缓存

    背景 在最近的项目中,有一个需求是对一个很大的数据库进行查询,数据量大概在几千万条.但同时对查询速度的要求也比较高. 这个数据库之前在没有使用Presto的情况下,使用的是Hive,使用Hive进行一 ...

  5. Redis(九):使用RedisTemplate访问Redis数据结构API大全

    RedisTemplate介绍 spring封装了RedisTemplate对象来进行对redis的各种操作,它支持所有的 redis 原生的api. RedisTemplate在spring代码中的 ...

  6. 电商项目搜寻功能(分页,高亮,solr,规格过滤,价格的排序)

    package cn.wangju.core.service; import cn.wangju.core.pojo.item.Item; import cn.wangju.core.util.Con ...

  7. RedisTemplate zSet的使用, 根据点赞排序,和创建时间排序2种方式

    使用Redis 对问题下的回答按点赞数排序的思路; 1根据问题id查出所有的回答列表; 2吧回答的ids添加到zset1中; key为id,value为赞的数量;(用于点赞排行); //批量添加 Lo ...

  8. 记一次SQLServer的分页优化兼谈谈使用Row_Number()分页存在的问题

    最近有项目反应,在服务器CPU使用较高的时候,我们的事件查询页面非常的慢,查询几条记录竟然要4分钟甚至更长,而且在翻第二页的时候也是要这么多的时间,这肯定是不能接受的,也是让现场用SQLServerP ...

  9. js实现前端分页页码管理

    用JS实现前端分页页码管理,可以很美观的区分页码显示(这也是参考大多数网站的分页页码展示),能够有很好的用户体验,这也是有业务需要就写了一下,还是新手,经验不足,欢迎指出批评! 首先先看效果图: 这是 ...

随机推荐

  1. hdu1465(放错信 错排公式)

    Problem Description 大家常常感慨,要做好一件事情真的不容易,确实,失败比成功容易多了! 做好“一件”事情尚且不易,若想永远成功而总从不失败,那更是难上加难了,就像花钱总是比挣钱容易 ...

  2. wifidog交叉编译

    本文主要记录在linux平台下.交叉编译wifidog并在openwrt平台上执行的过程.主要是针对wifidog源代码被改动后. 不得不亲自进行交叉编译移植的时候,所碰到的一些问题. (1)下载源代 ...

  3. mysql 移除服务,并在cmd下切换目录

    实际中需要把注册的mysql移除, 一时忘了命令, 特此记录 在网上找的帮助 #Path to installation directory. All paths are usually resolv ...

  4. lodash用法系列(3),使用函数

    Lodash用来操作对象和集合,比Underscore拥有更多的功能和更好的性能. 官网:https://lodash.com/引用:<script src="//cdnjs.clou ...

  5. resin 4.0.xx 版破解方法

    how to crack resin 4.0.2x resin 4.0.3x. 工具:jd http://jd.benow.ca/ 利用jd打开resin 4.0.xx目录下的lib/pro.jar ...

  6. 解决html5 audio iphone,ipd,safari不能自动播放问题

    html audio 在iPhone,ipd,safari浏览器不能播放是有原因滴 (在safri on ios里面明确指出等待用户的交互动作后才能播放media,也就是说如果你没有得到用户的acti ...

  7. 详细解读Volley(三)—— ImageLoader & NetworkImageView

    ImageLoader是一个加载网络图片的封装类,其内部还是由ImageRequest来实现的.但因为源码中没有提供磁盘缓存的设置,所以咱们还需要去源码中进行修改,让我们可以更加自如的设定是否进行磁盘 ...

  8. SpringBoot 获取当前登录用户IP

    控制器方法: @RequestMapping(value = "/getIp", method = RequestMethod.POST) @ResponseBody public ...

  9. SVG.js 元素操作整理(二)-Transform

    一.transform()获取或设置矩阵变换 var draw = SVG('svg1').size(300, 300); //Transforming SVG元素矩阵变换 var rect = dr ...

  10. matlib常用知识

    把文件装入矩阵 x = load('ex4x.dat'); y = load('ex4y.dat'); [m, n] = size(x); %得到矩阵x的行数和列数 ex4x.dat共80行,2列,通 ...