提示:本文針對的是StackExchange.Redis
一、問題呈現
前段時間在開發的時候, 遇到了redis批量讀的問題, 由於在StackExchange.Redis裡面我確實沒有找到PipeLine命令, 找到的是Batch命令, 因此對其用法進行了探究一下。
下面的代碼是我之前寫的:
從上面的代碼中可以看出, 並不是批量讀, 經過性能測試, 性能確實是要遠遠低於用Batch操作, 因為HashGetAll方法被執行了多次。
下面給出批量方法:
二、解決問題方法
具體的用法是:
var batch = db.CreateBatch();
...//這裡寫具體批量操作的方法
batch.Execute();
2.1批量寫:
具體代碼:
這個方法裡執行的是批量插入學生實體資料, 這裡只是針對Hash, 其它的也一樣操作。
2.2批量讀:
具體代碼:
這個方法是批量讀取學生實體資料, 批量拿到實體資料後, 將其轉化成我們需要的資料。 下面給出性能對比。
2.3性能對比:
10條數據, 約4-5倍差距:
1000條數據, 約28倍的差距:
隨著資料了增多, 差距將越來越大。
三、源碼測試案例
上面是批量讀寫實體資料, 下面給出StackExchange.Redis源碼測試案例裡的批量讀寫寫法:
這個方法裡也給出了批量寫和讀的操作。
好了, 先說到這裡了。
更多閱讀推薦:
優就業500萬陽光就業基金:
http://www.ujiuye.com/zt/jyfc/?wt.bd=fq37300
優就業官網:http://www.ujiuye.com/?wt.bd=fq37300