侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130555 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

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

2023-09-21 星期四 / 0 评论 / 0 点赞 / 23 阅读 / 1533 字

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

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

public void testGetMore() throws IOException {				RedisCallback<List<Object>> pipelineCallback = new RedisCallback<List<Object>>() {			@Override			public 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中找到对应的记录。

广告 广告

评论区