news 2026/5/24 1:12:11

redis分页查询

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
redis分页查询

redis不仅可以存普通文本,还可以存入List,这里就整理了下用redis做分页查询的功能。首先定义一个redis工具类,这里只贴出了需要的方法。

public class RedisUtils { private JedisPool pool; public RedisUtils() { if (pool == null) { JedisPoolConfig config = new JedisPoolConfig(); config.setMaxIdle(10); config.setTestOnBorrow(true); pool = new JedisPool(config, 127.0.0.1, 6379, 100000); } } /** * <p> * 通过key向list尾部添加字符串 * </p> * * @param key * @param strs * 可以使一个string 也可以使string数组 * @return 返回list的value个数 */ public Long rpush(String key, String... strs) { Jedis jedis = null; Long res = null; try { jedis = pool.getResource(); res = jedis.rpush(key, strs); } catch (Exception e) { pool.returnBrokenResource(jedis); e.printStackTrace(); } finally { returnResource(pool, jedis); } return res; } /** * 获取key当前页的list * @param key * @param curr * @param pageSize * @return */ public List<String> page(String key, int curr, int pageSize){ Jedis jedis = null; String res = null; List<String> lrange = null; try { jedis = pool.getResource(); lrange = jedis.lrange(key, (curr - 1) * pageSize, curr * pageSize); } catch (Exception e) { pool.returnBrokenResource(jedis); e.printStackTrace(); } finally { returnResource(pool, jedis); } return lrange; } /** * 获取key的总条数 * @param key * @return */ public long count(String key){ Jedis jedis = null; long total = 0L; try { jedis = pool.getResource(); total = jedis.llen(key); } catch (Exception e) { pool.returnBrokenResource(jedis); e.printStackTrace(); } finally { returnResource(pool, jedis); } return total; } }

接下来是应用层的调用

//这里演示存入redis的操作 public static void main(String[] args) { RedisUtils redisUtils = new RedisUtils(); for(int i=0;i<1000;i++){ HashMap<String, Object> map = new HashMap<>(); map.put("key_"+i, "value_"+i); //存入redis redisUtils.rpush("key", map.toString()); } } //这里演示读取redis数据的操作 public static void main(String[] args) { RedisUtils redisUtils = new RedisUtils(); //获取当前页的数据,1代表当前页 10代表每页条数 List<String> list = redisUtils.page("key", 1, 10); //获取总条数 long count = redisUtils.count("key"); }

redis分页查询效率很高,对于不需要持久化的数据可以使用此方案。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/19 10:23:06

Redis内存设置

1.生产上redis内存设置为多少比较合适&#xff1f; Redis使用maxmemory参数限制最大可用内存。 限制内存的目的主要有&#xff1a;①用于缓存场景&#xff0c; 当超出内存上限maxmemory时使用LRU等删除策略释放空间。 ②防止所用内存超过服务器物理内存。需要注意&#xff0c; …

作者头像 李华
网站建设 2026/5/19 14:48:48

Redis为什么这么快?Redis的线程模型与Redis多线程

一、Redis有多快&#xff1f; Redis是基于内存运行的高性能 K-V 数据库&#xff0c;官方提供的测试报告是单机可以支持约10w/s的QPS二、Redis为什么这么快&#xff1f; &#xff08;1&#xff09;完全基于内存&#xff0c;数据存在内存中&#xff0c;绝大部分请求是纯粹的内存操…

作者头像 李华
网站建设 2026/5/22 3:58:37

ARM嵌入式环境下QTimer精度优化实战案例

ARM嵌入式环境下 QTimer 精度优化实战&#xff1a;从“卡顿”到亚毫秒级响应的蜕变之路你有没有遇到过这样的场景&#xff1f;在工业HMI界面上&#xff0c;明明设置了每1ms采样一次传感器数据&#xff0c;结果实测却是10ms才触发一次&#xff1b;或者UI刷新本应是60帧流畅动画&…

作者头像 李华
网站建设 2026/5/7 11:54:28

Hunyuan HY-MT1.5部署疑问:网页推理打不开怎么办?

Hunyuan HY-MT1.5部署疑问&#xff1a;网页推理打不开怎么办&#xff1f; 1. 背景与问题引入 随着多语言交流需求的不断增长&#xff0c;高质量、低延迟的翻译模型成为智能应用的核心组件之一。腾讯近期开源了其混元大模型系列中的翻译专用版本——Hunyuan HY-MT1.5&#xff0…

作者头像 李华
网站建设 2026/5/15 20:33:37

Redis 设置密码(配置文件、docker容器、命令行3种场景)

现在没有配置密码的 Redis&#xff0c;一般来说&#xff0c;已经被很多安全检测系统视为漏洞和问题了&#xff0c;官方的 Redis 默认是关闭密码的&#xff0c;如果需要设置密码&#xff0c;目前应用场景来说可以分为三种&#xff0c;如下&#xff1a; 1、基于配置文件的 通过…

作者头像 李华
网站建设 2026/5/2 8:16:06

使用Arduino驱动WS2812B构建情景照明:手把手教程

用Arduino玩转WS2812B&#xff1a;从零构建情景照明系统的技术真相你有没有想过&#xff0c;家里的灯不只是“亮”或“灭”&#xff0c;而是能随着音乐跳动、模拟日出日落、甚至在你看电影时自动调成影院模式&#xff1f;这并不是科幻片里的场景——它已经悄悄走进了千家万户。…

作者头像 李华