在我们的印象中redis命令好像都是一个个单条进行执行的,
如果有人问你如何批量执行Redis命令,你能回答的上吗,或者说能答出几种方式呢?
最容易想到的是Redis的一些批量命令,例如MGET
今天小许就这个问题给大家总结一下!
图片
在了解批量执行有哪些方式之前,我们简单回顾下Redis命令执行的过程:
图片
为什么需要批量执行命令呢?
在了解批量执行命令有哪些方式之前,我们先简单整理下【批量执行命令】比【执行多个单Redis命令】能带来哪些好处!
通过批量执行命令好处如下:
图片
你看单个执行命令每次都需要发送进行网络传输,同样多的执行,批量执行可以有效减小网络开销,减少 RTT(往返时间)。
有以下四种常见批量执行命令的方式:
1. Redis原生命令:例如 MSET、HMGET、HMSET、SADD
2. pipeline(管道)
3. Lua脚本
4. Redis事务
图片
我们来给每种方式简单举个栗子,然后看看有什么需要注意的地方!
Redis的原生命令就支持批量命令的操作,比如:HMSET、HMGET、SADD。
其实严格来说上述命令不属于批量操作,而是在一个指令中处理多个key,我们来看下具体该如何使用。
MSET:设置一个或多个指定 key 的值
MGET:从一个或多个指定的key中获取值
MSET key value [key value ...]
MGET key [key ...]
操作哈希类型时,使用HMSET和HMGET命令分别设置和获取多个字段及其值
HMSET:将一个或多个 field-value 对设置到指定哈希表中
HMGET:从指定指定哈希表中一个或者多个字段的值
HMSET key field value [field value ...]
HMGET key field [field ...]
SADD可以将多个元素添加到有序集合
SADD key member [member ...]