最近遇到乙個需求,需要把資料庫中的手機號批量寫入到資料庫,使用了很多的方法都效能不佳或者出現連線池斷開的問題,最後在網上找到了這個方法
public static void main(string args) throws exception
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++)
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> result = new hashmap>();
for (object key : keys)
end = system.currenttimemillis();
system.out.println("result size:[" + result.size() + "] ..");
system.out.println("hgetall without pipeline used [" + (end - start) / 1000 + "] seconds ..");
//使用pipeline hgetall
map>> responses = new hashmap>>(keys.size());
result.clear();
start = system.currenttimemillis();
for (object key : keys)
p.sync();
for (string k : responses.keyset())
end = system.currenttimemillis();
system.out.println("result size:[" + result.size() + "] ..");
system.out.println("hgetall with pipeline used [" + (end - start) / 1000 + "] seconds ..");
redis.disconnect();
}
python使用pipeline批量讀寫redis
用了很久的redis了。隨著業務的要求越來越高。對redis的讀寫速度要求也越來越高。正好最近有個需求 需要在秒級取值1000 的資料 如果對於傳統的單詞取值,迴圈取值,消耗實在是大,有小夥伴可能考慮到多執行緒,但這並不是最好的解決方案,這裡考慮到了redis特有的功能pipeline管道功能。下面...
jenkins 管道Pipeline裡使用公用類庫
1 新增專案資料夾,在資料夾配置裡進行公用類庫的配置 2 在git倉庫根目錄建立vars資料夾,我們的方法檔案就在這個裡面 3 新增具體的方法檔案,擴充套件名為groovy,檔名即為方法名 4 buildproject.groovy這個檔案就是方法,它主要實現的功能是執行乙個.net core容器,...
jenkins 管道Pipeline裡使用公用類庫
1 jenkins 系統設定 共享類庫,或者在新增資料夾之後,在資料夾配置裡進行公用類庫的配置 2 在git倉庫根目錄建立vars資料夾,我們的方法檔案就在這個裡面 3 新增具體的方法檔案,擴充套件名為groovy,檔名即為方法名 4 buildproject.groovy這個檔案就是方法,它主要實...