Redis中PipeLine使用(二)---批量get與批量set
批量查詢的相關問題總結
再做測試之前首先向redis中批量插入一組資料
1-->1
2-->2
3-->3
4-->4
5-->5
6-->6
現在批量get資料
for (Entry<String,String> entry :map.entrySet())
{
pipe.get(entry.getKey().getBytes());
}
List<Object> list=pipe.syncAndReturnAll();
for(Object o:list){
byte[] tmp=(byte[])o;
System.out.println("---->"+new String(tmp));
}
其列印結果是:
然而這並不是我們想要的,那怎樣才能知道列印的這個value對應的key呢?
這樣的應用場景很多,我們首先批量從redis get資料出來,然後將get的資料與記憶體中的資料進行執行在批量寫入資料庫!
這是需要引入一個HashMap
HashMap<String, String> map=new HashMap<String, String>();
map.put("1","1");
map.put("2","2");
map.put("3","3");
map.put("4","4");
map.put("5","5");
map.put("6","6");
Pipeline pipe=redis.pipelined();
HashMap<byte[], Response<byte[]>> newMap=new HashMap<byte[], Response<byte[]>>();
for (Entry<String,String> entry :map.entrySet()) {
newMap.put(entry.getKey().getBytes(), pipe.get(entry.getKey().getBytes()));
}
pipe.sync();
for (Entry<byte[], Response<byte[]>> entry :newMap.entrySet()) {
Response<byte[]> sResponse=(Response<byte[]>)entry.getValue();
System.out.println(new String(entry.getKey())+"-----"+new String(sResponse.get()).toString());
}
批量get之後與記憶體的資料想加再批量set
HashMap<String, String> map=new HashMap<String, String>();
map.put("1","1");
map.put("2","2");
map.put("3","3");
map.put("4","4");
map.put("5","5");
map.put("6","6");
Pipeline pipe=redis.pipelined();
HashMap<byte[], Response<byte[]>> newMap=new HashMap<byte[], Response<byte[]>>();
for (Entry<String,String> entry :map.entrySet()) {
newMap.put(entry.getKey().getBytes(), pipe.get(entry.getKey().getBytes()));
}
pipe.sync();
for (Entry<byte[], Response<byte[]>> entry :newMap.entrySet()) {
Response<byte[]> sResponse=(Response<byte[]>)entry.getValue();
long temp=Long.valueOf(Long.parseLong(map.get(new String(entry.getKey())))+Long.parseLong(new String(sResponse.get()).toString()));
map.put(new String(entry.getKey()), Long.toString(temp));
}
for (Entry<String,String> entry :map.entrySet()) {
pipe.set(entry.getKey().getBytes(), entry.getValue().getBytes());
}
pipe.sync();
相關文章
- lombok get/set 與 JavaBean get/setLombokJavaBean
- 盤一盤 synchronized (二)—— 偏向鎖批量重偏向與批量撤銷synchronized
- 批量刪除 redis keysRedis
- Redis效能提高之批量和管道Redis
- redis中multi與pipeline介紹分析Redis
- 另一種批量裝機神器-----使用PXE批量裝機
- AD 批量匯入使用者(利用 for……do……dsadd user 批量建使用者)
- 批量按使用者expdp
- 使用MySqlBulkLoader批量插入資料MySql
- 使用JDBC時,加速批量insertJDBC
- 批量關注掘金使用者
- 使用PrepareStatement實現批量插入操作REST
- linux中批量替換文字中字串Linux字串
- Python IDLE可以使用ctrl +[ 批量減少縮排,ctrl + ]批量增加縮排Python
- 由淺到淺入門批量渲染(二)
- 私有屬性的Get Set 與 Public
- Python中已有的多個變數批量(動態)使用Python變數
- SQLServer批量更新SQLServer
- Laravel 批量更新Laravel
- Redis 中的 set 和 sorted set 如何使用,原始碼實現分析Redis原始碼
- 使用 【Ado.Net】 批量插入資料
- 使用IDM批量抓取音效素材下載
- Linux下使用Ansible處理批量操作Linux
- win系統下git程式碼批量克隆,批量更新Git
- Ansible批量更新遠端主機使用者密碼 (包括Ansible批量做ssh互信)密碼
- 使用ABAP批量下載有道雲筆記中的圖片筆記
- python:get和setPython
- 淺說 get set
- C# Get SetC#
- RocketMQ系列(六)批量傳送與過濾MQ
- 抖音批量取消喜歡,批量取消抖音喜歡
- iconfont批量儲存
- 批量關閉程式
- Mybatis批量操作demoMyBatis
- 批量ping主機
- 3. 批量新增多個使用者
- iOS使用shell指令碼批量修改屬性iOS指令碼
- 教你玩轉Linux—新增批量使用者Linux