org.springframework.data.redis 一次连接获取特定key所有k-v(pipeline)

news/2024/7/5 4:05:00

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

当我们需要一次性获取在redis中以hash方式存储的所有key-value时,我们可以使用下面的方式来获取。

public void testGetMore() throws IOException {RedisCallback<List<Object>> pipelineCallback = new RedisCallback<List<Object>>() {@Overridepublic List<Object> doInRedis(RedisConnection connection) throws DataAccessException {connection.openPipeline();connection.hGetAll("1129de8b-25bb-5678-be75-9552bcccf660".getBytes());connection.hGetAll("1129de8b-25bb-1234-be75-9552bcccf660".getBytes());return connection.closePipeline();};List<Object> results = (List<Object>) redisTemplate.execute(pipelineCallback);for (Object item : results) {if (item==null) {System.out.println("I'm null");}else {if (item instanceof JedisByteHashMap) {JedisByteHashMap jedisByteHashMap = (JedisByteHashMap)item;for (Map.Entry entry : jedisByteHashMap.entrySet()) {byte[]  key = (byte[]) entry.getKey(); System.out.println(new String(key));byte[]  value = (byte[]) entry.getValue(); System.out.println(new String(value));}}}}}

当然了,我们需要封装这个函数为通用的方法,这个时候,我们只需要把Key的List作形参即可。这里不再封装了,需要注意的就是一定要判断null的情况。因为传入的hashkey不一定能在redis中找到对应的记录。

转载于:https://my.oschina.net/hengbao666/blog/2231517


http://lihuaxi.xjx100.cn/news/236124.html

相关文章

关于java.util.LinkedHashMap cannot be cast to ......的解决办法

今天在项目中遇到一个问题&#xff0c;接口接收到list在对list进行遍历的时候报出如下错误: 断点看一下这个list感觉没有任何的问题: 那为什么会报这个错误呢 这个接口是这样的&#xff0c;在想会不会是json在转list的时候把这个list给整坏了。 于是&#xff0c;我把这个list再…

Python基础04-数据类型:数字、布尔、字符串

目录 数字 布尔 字符串 字符串的常用函数 字符串的内存分析 字符串练习题 数字 判断是数字类型还是字符串类型。 # <class str> 123 a "123" print(type(a), a)# <class int> 123 b int(a) print(type(b), b) 十进制、二进制、八进制、十六进…

人工智能承诺就业革命,但仍需传统的体力劳动

在北京郊区的一栋五层苏式工厂大楼里&#xff0c;一群年轻女性整齐的坐在工位前&#xff0c;每天盯着电脑&#xff0c;进行着重复性的工作。她们需要观察日常生活中的图像&#xff0c;然后汇总成图表。人工智能的到来被称为第四次工业革命&#xff0c;它承诺将人类从大量重复性…

java基础(十三)-----详解内部类——Java高级开发必须懂的

java基础(十三)-----详解内部类——Java高级开发必须懂的 目录 为什么要使用内部类内部类基础静态内部类 成员内部类 成员内部类的对象创建继承成员内部类局部内部类推荐博客匿名内部类正文 可以将一个类的定义放在另一个类的定义内部&#xff0c;这就是内部类。 回到顶部为什么…

Python基础05-数据类型:列表list

目录 列表 列表的一般用法 列表的方法 列表 列表的一般用法 列表用[]括起来&#xff0c;用逗号分隔元素。元素可以是任意的类型。 可以用len获取列表的长度&#xff0c;也就是元素的个数。 # 列表是个大杂烩&#xff0c;什么类型都可以往里面装 li [2019, 12, "存储…

分享:用promise封装ajax

用promise封装ajaxvar ajaxOptions {url: url,method: GET,async: true,data: null,dataType: text, } function ajax(protoOptions) {var options {};for(var i in ajaxOptions){options[i] protoOptions[i] || ajaxOptions[i];}return new Promise(function(resolve, reje…

其他进制的数字

JS中如果需要表示16进制的数字,则需要以0X开头 0X10 八进制数字以0开头 070 070有些浏览器会以8进制解析,但是有些则用10进制解析,10进制为70,8进制为56 所以parseint() 第二个参数可以设定进制,比如 parseint(“070”,10)代表以10进制解析070 2进制以0b开头,但是不是所有浏览…

Python基础06-数据类型:元组tuple

目录 元组 元组的一般用法 元组的方法 元组 元组的一般用法 元组用()括起来&#xff0c;用逗号分隔元素&#xff0c;元素类型是任意的。因为函数、方法的调用也是用()括起来&#xff0c;为了避免混淆&#xff0c;写元组的时候&#xff0c;在最后一个元素后面多写一个逗号。…