redis百萬級數據存取


       Jedis jedis0 = new Jedis("localhost", 6379);
        jedis0.auth("123456");
        Pipeline pipelined = jedis0.pipelined();
        Set<String> keys = jedis0.keys("batch*");
        for (String key:keys){
            pipelined.get(key);
        }
        
                List<Object> objects = pipelined.syncAndReturnAll();
                long l1 = System.currentTimeMillis();
                for (Object src:objects){
                    System.out.println(src);
                }
                long l2 = System.currentTimeMillis();
                System.out.println("耗時:"+(l2-l1)+"ms");
            }

使用Pipeline百萬級數據7



        Jedis jedis0 = new Jedis("localhost", 6379);
        jedis0.auth("123456");

                
        long l1 = System.currentTimeMillis();

        for (int i = 0; i < 1000000; i++) {
            jedis0.get("batch" + i);
        }
        long l2 = System.currentTimeMillis();
        System.out.println("耗時:" + (l2 - l1) + "ms");
 
普通get去獲取耗時:耗時:48622ms

前提redis版本要支持緩存,redis源碼每次緩存8192個字節,


# client-output-buffer-limit <class> <hard limit> <soft limit> <soft seconds>超過這個限制直接斷開連接,不然存了

client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60

 

 

 

obl:輸出緩存區長度

oll: 使用緩存的數量

omen:obl和oll占用的內內存

 使用時要控制內存,因為使用Pipeline即使用本地客戶端內存,也用服務端內存,適合用實施性不高的場景


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM