redis操作合并,是對redis管道操作的宏觀思考,就是將多個redis操作合并到一起向redis做請求,提高 redis服務(wù)的性能。同時因為減少了網(wǎng)絡(luò)往返的時間,也降低接口的相應(yīng)時間。
操作多個鍵時,redis單點與集群的區(qū)別
在redis集群中,對于多個鍵的操作比如集合的并操作(準確來說是多個鍵不在一個哈希槽上),是不支持的。同樣當你使用redis的管道與事務(wù),涉及到的命令操作多個鍵,也是不支持的,例子:
但是phpredis拓展,自己實現(xiàn)了幾個可以在集群中操作多鍵的函數(shù)(實現(xiàn)原理是RedisCluster類在遍歷每個鍵的哈希槽,然后對每個哈希槽進行操作):
mget:返回給定的一個或多個字符串鍵的值
mset:為多個字符串鍵設(shè)置值
del:刪除鍵
unlink:非阻塞刪除鍵,redis版本大于4.0.0
同時也可以通過鍵哈希標簽(Keys hash tags),來確保多個鍵在同一個哈希槽中,然后再進行這些鍵的操作。
操作同一個鍵時
1.添加鍵的同時對鍵設(shè)置過期時間
set命令是原生支持添加鍵的同時設(shè)置過期時間,而其他類型的鍵則可以通過管道或事務(wù)添加過期時間,例子:
2.一次性向key里添加多個數(shù)據(jù)
比如lpush,rpush,sadd,zadd是可以同時向鍵里添加多條數(shù)據(jù),例子: