redis HSCAN命令及jedis的hscan方法[通俗易懂]

redis HSCAN命令及jedis的hscan方法[通俗易懂]参考文档:http://doc.redisfans.com/key/scan.html@Override publicScanResultshscanToResltByVague(Stringkey,Stringpattern,Stringcursor,intpageSize){ List<Map.Entry<String,String>>result=null; List<Map.Entry<String,String&

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

参考文档:

http://doc.redisfans.com/key/scan.html

hscan是针对hash类型扫描,如果hash内条目非常多时,比如超过10万,那么根据默认的count = 10,每次扫描返回空的概率很大,此时可以根据情况把count调大:

redis HSCAN命令及jedis的hscan方法[通俗易懂]

下边是对jedis的 hscan进行了封装:

@Override
	public ScanResults hscanToResltByVague(String key, String pattern, String cursor, int pageSize) {
		List<Map.Entry<String, String>> result = null;
		List<Map.Entry<String, String>> results = new ArrayList<Map.Entry<String, String>>();
		ScanResults rsl = new ScanResults();
		ScanParams params = new ScanParams();
		String scanCursor = "0";
		if (!RobotUtils.isNull(cursor)) {
			scanCursor = cursor;
		}
		params.count(pageSize + 50);
		do {
			ScanResult<Entry<String, String>> scanResult = jedis.hscan(key, scanCursor, params.match(pattern));
			scanCursor = scanResult.getStringCursor();
			result = scanResult.getResult();
			results.addAll(result);
			if (results.size() >= pageSize) {
				break;
			}
		} while (!scanCursor.equals("0"));
		rsl.setCursor(scanCursor);
		rsl.setResultsEntry(results);
		rsl.setResultSize(results.size());
		return rsl;
	}

Jetbrains全家桶1年46,售后保障稳定

 实际使用:

@Test
     public void testRedisHscan() throws InterruptedException {
         
         Thread.sleep(1000*40);
         
         long start = System.currentTimeMillis();
         
         DataCache cache = DataCacheFactory.getInstance();
         //ScanResults rs = cache.hscanToResltByVague("METADATA:VDITEMS", "c3ed2101aa56421d9f0eb23e4b719c29*", "0", 50000);
         List<HashMap<String, String>> lst = cache.hscanToResltByVague(SysConfig.getProperty("metadata.cache.vdItem"), "c3ed2101aa56421d9f0eb23e4b719c29*", "0", 50000).getResults();
         
        long end = System.currentTimeMillis();
         
         System.out.println("+++++++++++++++++耗时:"+(end-start));
         try {
            System.out.println("+++++++++++++++++耗时:"+(end-start)+"     结果:"+JSONUtils.serializeObject(lst));
        } catch (IOException e) {
            // TODO Auto-generated catch block
             e.printStackTrace();
        }
     }

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/230809.html原文链接:https://javaforall.net

(0)
上一篇 2025年6月17日 下午5:15
下一篇 2025年6月17日 下午5:43


相关推荐

  • springcloud之服务注册与发现

    springcloud之服务注册与发现

    2021年6月5日
    103
  • 微信小程序弹窗有输入框且可以使用名文和密文输入

    微信小程序弹窗有输入框且可以使用名文和密文输入wxml viewclass made box wx if passShow viewclass main viewclass title viewclass f f 请输入直播间密码 viewclass inputeara viewclass inputeara viewclass f f viewclass title viewclass main viewclass made box wx if passShow

    2025年10月22日
    10
  • PHP实现伪静态方法汇总

    PHP实现伪静态方法汇总

    2021年9月18日
    62
  • C++ stl_stl函数

    C++ stl_stl函数学校并未教授C++,当初接触的C++的STL,也是皮毛而已。结合对Java的集合框架等内容的认识,回顾这部分内容,收获很大。文章目录概述STL六大组件简介三大组件介绍1.容器2.算法3.迭代器常用容器1.string容器string容器基本概念string容器常用操作2.vector容器vector容器基本概念vector迭代器vector的数据结构vector常用API操作…

    2022年8月30日
    4
  • xshell连接虚拟机使用的是什么连接模式_vmware无法连接到虚拟机

    xshell连接虚拟机使用的是什么连接模式_vmware无法连接到虚拟机文章目录配置虚拟机网络Xshell连接理想的步骤意外后的步骤Connectionfailed出现弹框错误安装openssh-server错误配置虚拟机网络如果在本地可以ping通虚拟机的ip,就可以通过xshell连接了。Xshell连接理想的步骤点击【文件】->【新建】打开新建会话属性弹框,输入虚拟机的主机ip。切换选项卡【用户身份验证】。输入用户名,密码需要…

    2026年2月20日
    5
  • 音频功放的种类和基本原理

    音频功放的种类和基本原理音频功放的种类和基本原理作者:AirCity2019.12.2Aircity007@sina.com本文所有权归作者Aircity所有1 简介功率放大器简称功放,它是将小信号放大,这个放大包括电压和电流,用更大的功率推动音响放声。在技术发展过程中,产生了不同类型的功放种类,按照功率管的导电方式,可以分为甲类功放(又称A类)、乙类功放(又称B类)、甲乙类功放(又称AB类)和丁类功放功…

    2022年6月4日
    36

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号