JAVA使用pipeline批量寫Redis數(shù)據(jù)

最近遇到一個(gè)需求色查,需要把數(shù)據(jù)庫中的手機(jī)號(hào)批量寫入到數(shù)據(jù)庫擂红,使用了很多的方法都性能不佳或者出現(xiàn)連接池?cái)嚅_的問題,最后在網(wǎng)上找到了這個(gè)方法

    public static void main(String[] args) throws Exception {
        //連接redis
        Jedis redis = new Jedis("127.0.0.1", 6380, 400000);
        redis.auth("123456");

        Map<String, String> data = new HashMap<String, String>();
        redis.select(0);
        redis.flushDB();
        //hmset
        long start = System.currentTimeMillis();
        //直接hmset
        for (int i = 0; i < 10000; i++) {
            data.clear();
            data.put("k_" + i, "v_" + i);
            redis.hmset("key_" + i, data);
        }
        long end = System.currentTimeMillis();
        System.out.println("dbsize:[" + redis.dbSize() + "] .. ");
        System.out.println("hmset without pipeline used [" + (end - start) / 1000 + "] seconds ..");
        redis.select(0);
        redis.flushDB();
        //使用pipeline hmset
        Pipeline p = redis.pipelined();
        start = System.currentTimeMillis();
        for (int i = 0; i < 10000; i++) {
            data.clear();
            data.put("k_" + i, "v_" + i);
            p.hmset("key_" + i, data);
        }
        p.sync();
        end = System.currentTimeMillis();
        System.out.println("dbsize:[" + redis.dbSize() + "] .. ");
        System.out.println("hmset with pipeline used [" + (end - start) / 1000 + "] seconds ..");
        //hmget
        Set keys = redis.keys("*");
        //直接使用Jedis hgetall
        start = System.currentTimeMillis();
        Map<String, Map<String, String>> result = new HashMap<String, Map<String, String>>();
        for (Object key : keys) {
            result.put((String) key, redis.hgetAll((String) key));
        }
        end = System.currentTimeMillis();
        System.out.println("result size:[" + result.size() + "] ..");
        System.out.println("hgetAll without pipeline used [" + (end - start) / 1000 + "] seconds ..");
        //使用pipeline hgetall
        Map<String, Response<Map<String, String>>> responses = new HashMap<String, Response<Map<String, String>>>(keys.size());
        result.clear();
        start = System.currentTimeMillis();
        for (Object key : keys) {
            responses.put((String) key, p.hgetAll((String) key));
        }
        p.sync();
        for (String k : responses.keySet()) {
            result.put(k, responses.get(k).get());
        }
        end = System.currentTimeMillis();
        System.out.println("result size:[" + result.size() + "] ..");
        System.out.println("hgetAll with pipeline used [" + (end - start) / 1000 + "] seconds ..");
        redis.disconnect();
    }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末泽台,一起剝皮案震驚了整個(gè)濱河市懈万,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌泻蚊,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件丑婿,死亡現(xiàn)場(chǎng)離奇詭異性雄,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)羹奉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門秒旋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人诀拭,你說我怎么就攤上這事迁筛。” “怎么了耕挨?”我有些...
    開封第一講書人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵细卧,是天一觀的道長尉桩。 經(jīng)常有香客問我,道長贪庙,這世上最難降的妖魔是什么蜘犁? 我笑而不...
    開封第一講書人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮止邮,結(jié)果婚禮上这橙,老公的妹妹穿的比我還像新娘。我一直安慰自己导披,他們只是感情好屈扎,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著撩匕,像睡著了一般鹰晨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上滑沧,一...
    開封第一講書人閱讀 52,156評(píng)論 1 308
  • 那天并村,我揣著相機(jī)與錄音,去河邊找鬼滓技。 笑死哩牍,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的令漂。 我是一名探鬼主播膝昆,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼叠必!你這毒婦竟也來了荚孵?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤纬朝,失蹤者是張志新(化名)和其女友劉穎收叶,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體共苛,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡判没,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了隅茎。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片澄峰。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖辟犀,靈堂內(nèi)的尸體忽然破棺而出俏竞,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布魂毁,位于F島的核電站玻佩,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏漱牵。R本人自食惡果不足惜夺蛇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望酣胀。 院中可真熱鬧刁赦,春花似錦、人聲如沸闻镶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽铆农。三九已至牺氨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間墩剖,已是汗流浹背猴凹。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留岭皂,地道東北人郊霎。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像爷绘,于是被迫代替她去往敵國和親书劝。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,262評(píng)論 25 707
  • JDBC概述 在Java中土至,數(shù)據(jù)庫存取技術(shù)可分為如下幾類:JDBC直接訪問數(shù)據(jù)庫购对、JDO技術(shù)、第三方O/R工具陶因,如...
    usopp閱讀 3,542評(píng)論 3 75
  • 一骡苞、 設(shè)計(jì)理念 1.空間換時(shí)間 1)多級(jí)緩存,靜態(tài)化 客戶端頁面緩存(http header中包含Expires/...
    帥T閱讀 3,613評(píng)論 1 15
  • 今天老公陪我練了一下午的車楷扬,感覺還不錯(cuò)解幽。以前一直很排斥開車,心想自己肯定開不好毅否,所以不愿去嘗試亚铁,現(xiàn)在看來蝇刀,你越害怕...
    快快媽媽育兒說閱讀 183評(píng)論 0 0
  • 2015年到2016年跨年的這幾天螟加,我想我們總得做點(diǎn)什么吧,才能體現(xiàn)出它的特別來。我們永遠(yuǎn)也不會(huì)再見的2015捆探,它...
    Sophie朵兒閱讀 348評(píng)論 0 0