java redis 管道_java 用jedis管道操作,批量获取hash

该博客介绍了如何通过Redis的管道(Pipeline)操作来优化大量Hash类型数据的批量读取,以提高效率。代码示例展示了如何根据键前缀获取并转换多个Hash值为对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当redis中某个文件夹下面,存了很多结构一样的hash类型数据,我们又需要批量一起取出来,用简单的hget命令效率很慢,这个时候就需要用到redis管道操作了,这样可以大大提升读取效率,可以用如下代码去操作

/**

* 根据redis key前缀批量获取文件夹下的hash值,并转换成对象

* @param tClass 接收hash的的数据类

* @param keyPrefix key前缀例如 user:

* @throws

* @return java.util.List

* @author zhy

* @date 2020/4/10 16:37

*/

public List hgetAllByPrefix(Class tClass,String keyPrefix){

Jedis jedis = null;

Pipeline pipelined = null;

try {

jedis = pool.getResource();

//批量获取文件夹下面的key值

Set keys = jedis.keys(keyPrefix + "*");

//管道操作

pipelined = jedis.pipelined();

for (String key : keys) {

pipelined.hgetAll(key);

}

return JSON.parseArray(JSON.toJSONString(pipelined.syncAndReturnAll()),tClass);

} finally {//关闭资源

if (pipelined != null){

try {

pipelined.close();

} catch (IOException e) {

e.printStackTrace();

}

}

if (jedis != null){

jedis.close();

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值