在我們的印象中Redis命令好像都是一個個單條進(jìn)行執(zhí)行的,
如果有人問你如何批量執(zhí)行Redis命令,你能回答的上嗎,或者說能答出幾種方式呢?
最容易想到的是Redis的一些批量命令,例如MGET
今天小許就這個問題給大家總結(jié)一下!
圖片
在了解批量執(zhí)行有哪些方式之前,我們簡單回顧下Redis命令執(zhí)行的過程:
圖片
為什么需要批量執(zhí)行命令呢?
在了解批量執(zhí)行命令有哪些方式之前,我們先簡單整理下【批量執(zhí)行命令】比【執(zhí)行多個單Redis命令】能帶來哪些好處!
通過批量執(zhí)行命令好處如下:
圖片
你看單個執(zhí)行命令每次都需要發(fā)送進(jìn)行網(wǎng)絡(luò)傳輸,同樣多的執(zhí)行,批量執(zhí)行可以有效減小網(wǎng)絡(luò)開銷,減少 RTT(往返時間)。
有以下四種常見批量執(zhí)行命令的方式:
1. Redis原生命令:例如 MSET、HMGET、HMSET、SADD
2. pipeline(管道)
3. Lua腳本
4. Redis事務(wù)
圖片
我們來給每種方式簡單舉個栗子,然后看看有什么需要注意的地方!
Redis的原生命令就支持批量命令的操作,比如:HMSET、HMGET、SADD。
其實(shí)嚴(yán)格來說上述命令不屬于批量操作,而是在一個指令中處理多個key,我們來看下具體該如何使用。
MSET:設(shè)置一個或多個指定 key 的值
MGET:從一個或多個指定的key中獲取值
MSET key value [key value ...]MGET key [key ...]
操作哈希類型時,使用HMSET和HMGET命令分別設(shè)置和獲取多個字段及其值
HMSET:將一個或多個 field-value 對設(shè)置到指定哈希表中
HMGET:從指定指定哈希表中一個或者多個字段的值
HMSET key field value [field value ...]HMGET key field [field ...]
SADD可以將多個元素添加到有序集合
SADD key member [member ...]
本文鏈接:http://www.tebozhan.com/showinfo-26-63231-0.html批量執(zhí)行Redis命令的四種方式!
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com