日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

redis HSCAN命令及jedis的hscan方法

發布時間:2023/12/14 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 redis HSCAN命令及jedis的hscan方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

參考文檔:

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

hscan是針對hash類型掃描,如果hash內條目非常多時,比如超過10萬,那么根據默認的count = 10,每次掃描返回空的概率很大,此時可以根據情況把count調大:

下邊是對jedis的?hscan進行了封裝:

@Overridepublic 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;}

?實際使用:

@Testpublic 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 blocke.printStackTrace();}}

?

?

總結

以上是生活随笔為你收集整理的redis HSCAN命令及jedis的hscan方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。