功能:从source-key列表中弹出最右端的元素,然后将这个元素推入dest-key列表的最左端,并向用户返回这 个元素,如果source-key为空,那么在timeout秒之内阻塞并等待可弹出的元素出现
以下是这些命令的使用示例:
3. 集合SetRedis的集合以无序的方式来存储多个各不相同的元素。
与上面提到的列表相比,Redis中的集合主要有以下2个特性:
无序地存储多个字符串
集合里面的元素是不可以重复的
经常使用的集合命令主要分为以下3种类型:
常用命令
元素移动命令
差集/交集/并集命令
接下来,我们一一讲解。
3.1 常用命令常用命令主要有:SADD、SMEMBERS、SISMEMBER、SREM、SCARD。
以上命令的功能描述如下所示:
命令 语法 功能SADD SADD keyname item [item ...] 将一个或多个元素添加到集合
SMEMBERS SMEMBERS keyname 返回集合包含的所有元素
SISMEMBER SISMEMBER keyname item 检查元素item是否存在于集合keyname中
SREM SREM keyname item [item ...] 从集合里删除一个或多个元素
SCARD SCARD keyname 返回集合包含元素的数量
以下是这些命令的使用示例:
3.2 元素移动命令元素移动命令主要有:SMOVE。
以上命令的功能描述如下所示:
语法:SMOVE sourcekey destkey item
功能:将集合sourcekey中的元素item移除,并将元素item添加到集合destkey中
如果item被成功移除,返回1,否则返回0
以下是SMOVE命令的使用示例:
3.3 差集/交集/并集命令交集/并集/差集命令主要有:SDIFF、SDIFFSTORE、SINTER、SINTERSTORE、SUNION、SUNIONSTORE。
以上命令的功能描述如下所示:
命令 语法 功能SDIFF SDIFF keyname [key-name ...] 返回存在于第1个集合,不存在于其他集合的元素(差集运算)
SDIFFSTORE SDIFFSTORE destkey keyname [key-name ...] 将存在于第1个集合,不存在于其他集合的元素(差集运算)存储到destkey集合
SINTER SINTER keyname [key-name ...] 返回同时存在于所有集合中的元素(交集运算)
SINTERSTORE SINTERSTORE destkey keyname [key-name ...] 将同时存在于所有集合中的元素(交集运算)存储到destkey集合
SUNION SUNION keyname [key-name ...] 返回至少存在于一个集合中的元素(并集运算)
SUNIONSTORE SUNIONSTORE destkey keyname [key-name ...] 将至少存在于一个集合中的元素(并集运算)存储到destkey集合
以下是这些命令的使用示例:
4. 散列Hash关于数据结构Hash,有些书籍叫做散列,有些书籍叫做哈希,本文中使用名称:散列。
Redis的散列可以存储多个键值对之间的映射,即可以让用户将多个键值对存储到一个Redis键里面,如下所示:
接下来,我们了解下经常使用的散列命令。
4.1 添加键值对往散列里添加键值对有2个命令,分别是HSET、HMSET,其中HSET一次只能添加1个键值对,而HMSET一次可以添加多个键值对。
以下是这2个命令的使用示例:
此时的hash-key包含3个键值对,如下所示:
4.2 获取键值对获取散列里键值对有以下5个命令:
HGET 从散列里获取指定键的值
HMGET 从散列里获取一个或多个键的值
HKEYS 获取散列包含的所有键
HVALS 获取散列包含的所有值
HGETALL 获取散列包含的所有键值对
以下是这5个命令的使用示例:
4.3 获取键值对数量可以通过HLEN命令来获取散列包含的键值对数量。
以下是HLEN命令的使用示例:
4.4 判断键是否存在可以通过HEXISTS命令来检查某个键是否存在于散列中。
以下是HEXISTS命令的使用示例:
4.5 自增/自减