redis 使用管道提升写入的性能[pipeline]
看了手冊的都知道multi這個命令的作用就好比是mysql的事務的功能,但是大家都知道事務嗎,就是在操作的過程中,把整個操作當作一個原子來處理,避免由于中途出錯而導致最后產生的數據不一致,而產生BUG ,Mysql的事務功能可以做到這點,但是在redis中的multi,手冊中說是把多個命令當作個事務來處理,但是在真正的測試之后發現并沒有所說的事務的功能,個人經過測試發現,只有把他watch命令結合起來用,方可顯現出其具有事務的功能,所以這點很是迷惑,關鍵是有一點很詫異,當啟用了multi命令之后整個redis的讀寫會相對于沒有使用multi的的讀寫要慢一點,我通過讀寫100W條數據發現,他們的速度相差600多毫秒,搞不清楚為什么相差這么多!個人覺得沒有必要,還是不要使用這個multi的為好!
至于redis的pipeline命令,看手冊都知道,它能夠讓(多條)執行命令簡單的,更加快速的發送給服務器,但是沒有任何原子性的保證,能不能保證原子性這個我沒有測試,但是這個速度我測試了下,確實是吃了一驚啊!相比于沒有使用pipeline的讀寫操作,使用了pipeline命令的操作要快12倍不止啊!這個效率高的。。。。
下面是我的測試代碼:歡迎拍磚。
這是返回的結果:
//pipeline的執行時間
1926.5ms
//multi的執行時間
27725.7ms
//正常情況下
24832.1ms
來源:https://www.cnblogs.com/hgj123/p/4646298.html
總結
以上是生活随笔為你收集整理的redis 使用管道提升写入的性能[pipeline]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 纳杰人才网客服电话(纳杰人才网)
- 下一篇: redis 使用管道pipeline和不