返回顶部
首页 > 资讯 > 后端开发 > Python >JavaRedisTemplate批量查询指定键值对的实现
  • 862
分享到

JavaRedisTemplate批量查询指定键值对的实现

2024-04-02 19:04:59 862人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录一.Redis使用pipeline批量查询所有键值对二.批量获取指定的键值对列表一.Redis使用pipeline批量查询所有键值对 一次性获取所有键值对的方式: private

一.Redis使用pipeline批量查询所有键值对

一次性获取所有键值对的方式:

private RedisTemplate redisTemplate;

@SuppressWarnings({ "rawtypes", "unchecked" })
    public List executePipelined(Collection<String> keySet) {
        return redisTemplate.executePipelined(new SessionCallback<Object>() {
            @Override
            public <K, V> Object execute(RedisOperations<K, V> operations) throws DataAccessException {
                HashOperations hashOperations = operations.opsForHash();
                for (String key : keySet) {
                    hashOperations.entries(key);
                }
                return null;
            }
        });
    }

说明: 上面的方法,可以将多个Redis 哈希表一次性取出,只有一次IO的时间。但也有个缺点,当哈希表中有个键值对中的内容特别长的时候,效率明显下降。如果我们根本不需要这个键值对,但每次都要将它取出,会大大浪费性能,解决方案就是第二种方式。

二.批量获取指定的键值对列表


    @SuppressWarnings("unchecked")
    public List<Map<String, String>> getSelectiveHashsList(List<String> keys, List<String> hashKeys) {
        List<Map<String, String>> hashList = new ArrayList<Map<String, String>>();
        List<List<String>> pipelinedList = redisTemplate.executePipelined(new RedisCallback<Object>() {
            @Override
            public Object doInRedis(RedisConnection connection) throws DataAccessException {
                StringRedisConnection stringRedisConnection = (StringRedisConnection) connection;
                for (String key : keys) {
                    stringRedisConnection.hMGet(key, hashKeys.toArray(new String[hashKeys.size()]));
                }
                return null;
            }

        });
        for (List<String> hashValueList : pipelinedList) {
            Map<String, String> map = new LinkedHashMap<String, String>();
            for (int i = 0; i < hashValueList.size(); i++) {
                map.put(hashKeys.get(i), hashValueList.get(i));
            }
            hashList.add(map);
        }
        return hashList;
    }

使用示例:

可以批量取出你想要的人物属性:

调用上述方法示例:

"tom","jack"是你想要操作的表;"name","age"是你想要获取的属性,想要几个属性,写几个,提升请求速度。

getSelectiveHashsList(Arrays.asList("tom","jack"),Arrays.asList("name","age"));

到此这篇关于Java Redis Template批量查询指定键值对的实现的文章就介绍到这了,更多相关Java Redis Template批量查询指定键值对内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: JavaRedisTemplate批量查询指定键值对的实现

本文链接: https://lsjlt.com/news/154161.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • JavaRedisTemplate批量查询指定键值对的实现
    目录一.Redis使用pipeline批量查询所有键值对二.批量获取指定的键值对列表一.Redis使用pipeline批量查询所有键值对 一次性获取所有键值对的方式: private...
    99+
    2024-04-02
  • 大数据批量键值怎么快速查询
    大数据批量键值怎么快速查询,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一般选择数据库来存放数据,并借助数据表的索引来加快检索速度。利用索引查找数据,即使数据总量达到有10...
    99+
    2023-06-03
  • 大数据批量键值查询怎样才会更快
    一般选择数据库来存放数据,并借助数据表的索引来加快检索速度。利用索引查找数据,即使数据总量达到有10亿,对于单条记录的查找效率大约在数十毫秒(复杂度为LogN)。但是,如果需要查询的键值很多,比如多达几千甚至几万的时候,如果每次都独立查找,...
    99+
    2016-08-06
    大数据批量键值查询怎样才会更快
  • php如何删除指定k键的键值对
    今天小编给大家分享一下php如何删除指定k键的键值对的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。unset函数PHP中可以...
    99+
    2023-07-05
  • mybatis批量查询分页怎么实现
    MyBatis提供了两种方法来实现批量查询分页:1. 使用`RowBounds`实现分页查询:`RowBounds`是MyBatis...
    99+
    2023-09-05
    mybatis
  • php如何实现批量查询显示
    这篇文章主要介绍了php如何实现批量查询显示的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php如何实现批量查询显示文章都会有所收获,下面我们一起来看看吧。首先,我们可以使用PHP与MySQL数据库进行批量查询...
    99+
    2023-07-05
  • jpa实现只查询指定的字段
    目录jpa查询指定的字段下面是实例代码spring data jpa查询自定义查询字段jpa查询指定的字段 JpaRepository中new的方式产生新的对象,并配置好其构造函数 ...
    99+
    2024-04-02
  • Python 实现批量查询IP并解析为归
    一、背景: 最近工作中做了一个小功能,目的是为了分析注册用户区域分布和订单的区域分布情况。所以需要将其对应的IP信息解析为归属地,并同步每天同步更新。线上跑起来效率还是有优化的空间,优化的方向:在调用IP查询API过程可以调整为多...
    99+
    2023-01-30
    批量 Python IP
  • logback 实现给变量指定默认值
    目录logback 实现给变量指定默认值格式是 ${变量名:-默认值}logback变量定义变量在 logback.xml 中定义变量在命令行定义变量引入properties文件变量...
    99+
    2024-04-02
  • Django 外键查询的实现
    目录一、一对多二、多对多(返回的内部是相关类的对象的查询集)创建三张表,详情如下: class Publish(models.Model): id = models.A...
    99+
    2024-04-02
  • MyBatis的五种批量查询实例总结
    目录一.直接循环插入二.关闭MySql自动提交,手动进行循环插入提交第三种:用List集合的方式插入数据库(推荐)第四种: MyBatis-Plus提供的SaveBatch方法第五种...
    99+
    2023-02-28
    mybatis批量查询语句 mybatis 批量操作 mybatis 批量查询
  • SAP怎么实现批量查询序列号数据
    本篇内容介绍了“SAP怎么实现批量查询序列号数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!事务代码IQ09,输入物料号等信息,执行,修改...
    99+
    2023-06-05
  • MyBatis批量查询、插入、更新、删除的实现示例
    目录1.批量查询1.1在CityBatchMapper中接口代码1.2 在CityBatchMapper.xml中SQL代码2.批量插入2.1在CityBatchMapper中接口代...
    99+
    2023-05-20
    MyBatis批量查询 MyBatis批量插入 MyBatis批量删除
  • thinkphp查询指定字段值的方法是什么
    这篇文章主要介绍“thinkphp查询指定字段值的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“thinkphp查询指定字段值的方法是什么”文章能帮助大家解决问题。第一步:连接数据库在使用...
    99+
    2023-07-05
  • Springboot 手动分页查询分批批量插入数据的实现流程
    目录前言业务场景是什么? 正文前言 业务场景是什么?  就是数据库的一批数据,量不少,需要执行同步插入到别的地方。 简单点肯定是一次性查出来,然后循环一个个插入,...
    99+
    2024-04-02
  • MyBatis批量查询、插入、更新、删除如何实现
    今天小编给大家分享的是MyBatis批量查询、插入、更新、删除如何实现,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。1.批量查询提供两种方式。方式一,返回值: List<Cit...
    99+
    2023-07-06
  • Python批量实现word中查找关键字的示例代码
    目录 一、背景二、开发环境三、实现代码 一、背景 在日常办公和文档处理中,我们常常需要在大量的Word文档中查找特定的关键字,然后进行接下来的操作,比如关键字替换...
    99+
    2023-08-08
    Python word查找关键字 Python 查找关键字
  • golang 实现对Map进行键值自定义排序
    看代码吧~ //自定义结构体,用来自定义排序 type RecentlyUpdateListMapSorter []map[string]interface{} //根据MapS...
    99+
    2024-04-02
  • mybatis-plus指定字段模糊查询的实现方法
    mybatis-plus版本:3.3.0 oracle版本:11g 很常见的一个需求场景:某张表在前端显示时,查询条件中,往往name字段需要模糊查询,否则默认mybatis-plu...
    99+
    2024-04-02
  • 【Java】对Minio指定Bucket大量文件的批量下载与本地文件夹的批量上传
    文章目录 需求批量下载代码效果 批量上传代码效果 需求 需要批量下载一个bucket下的内容,bucket下文件有19GB+,且文件夹结构复杂,使用官方的Console无法完成这么...
    99+
    2023-09-24
    java Minio 对象存储 上传下载
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作