Set
键值无序且唯一
SETADD
SADD key member [member ...]
- 将一个或多个
member
元素加入到集合key
当中,已经存在于集合的member
元素将被忽略 - 假如
key
不存在,则创建一个只包含member
元素作成员的集合 - 返回添加的新元素数量,重复值忽略
SCARD
SCARD key
- 返回
key
含有的元素数量
SISMEMBER
SISMEMBER key member
- 判断
member
是否存在于键值为key
的集合中
SMEMBERS
SMEMBERS key
- 返回集合中所有元素
SMOVE
SMOVE source destination member
- 将
member
从source
集合中移动到destination
集合中,是个原子性操作 - 如果
source
没有member
元素,则不执行操作 - 如果
destination
存在member
元素,则只执行source
删除member
元素
SPOP
SPOP key
- 随机删除集合中一个元素并返回
SRANDMEMBER
SRANDMEMBER key [count]
- 随机返回集合中的元素,
count
不填时,返回一个 count >= 集合长度
,返回整个集合count < 集合长度 && count > 0
,返回count个元素count < 0
,返回的元素可能会重复出现多次,而数组的长度为count
的绝对值- 只会返回元素,不会操作集合,和
SPOP
随即移除一个元素并返回不同
SREM
SREM key member[member...]
- 移除一个或多个元素,不存在的元素会被忽略
SSCAN
SSCAN cursor [MATCH pattern][COUNT count]
cursor
:游标,默认从0开始,每一次执行scan除了返回查询结果还会返回游标的位置,即便某次查询结果为空,并不能代表遍历结束,只有当返回的游标为0时,才能代表遍历结束match
: 默认是 * ,匹配指定的元素count
:默认是10,redis的底层实现类似java的hashmap,都是hash表,所以真正存储数据的是数组,count指定的是每次查询数组多少个元素
SDIFF
SDIFF key[key...]
- 返回第一个集合中存在,但是其他集合中不存在的元素集合
SDIFFSTORE
SDIFFSTORE destination key[key...]
- 返回第一个集合中存在,但是其他集合中不存在的元素集合
- 将返回的结果保存在
destination
中,如果destination
集合已存在,则将其覆盖
SINTER
SINTER key[key...]
- 返回所有集合的交集元素
SINTERSTORE`
SINTERSTORE destination key[key...]
- 返回所有集合的交集元素
- 将返回的结果保存在
destination
中,如果destination
集合已存在,则将其覆盖
SUNION
SUNION key[key...]
- 返回所有集合的并集
SUNIONSTORE
SUNIONSTORE destination key[key...]
- 返回所有集合的并集
- 将返回的结果保存在
destination
中,如果destination
集合已存在,则将其覆盖
Hash
HSET
HSET key field value
- 将哈希表中
key
中的fields
设置值为value
- 如果
key
不存在,则创建一个新的key
,并进行操作 - 如果存在,则覆盖旧值
HMSET
HMSET key field[field value...]
- 批量创建
- 如果
key
不存在,则创建一个新的key
,并进行操作 - 如果存在,则覆盖旧值
HSETNX
HSETNX key field value
- 仅当key中的field不存在,才会操作,若已存在,则不操作
- 如果key不存在,则创建一个新的key,并进行操作
HGET
HGET key field
- 获取键为
key
的哈希表中字段为field
的值 - 给定域不存在或是给定
key
不存在时,返回nil
HMGET
HMGET key field[field...]
- 批量获取值
- 如果给定的field不存在,则返回nil
- 如果key不存在,则返回nil的列表
HGETALL
HGETALL key
- 返回哈希表中key中的所有域和值
HKEYS
HKEYS key
- 返回哈希表中key的所有域
HVALS
HVALS key
- 返回哈希表中key的所有域对应的值
HLEN
HLEN key
- 返回哈希表中key中域的数量
HDEL
HDEL key field[field...]
- 批量移除key中的域
HEXISTS
HEXISTS key field
- 判断是否key中是否存在字段field
HINCRBY
HINCRBY key field increment
- 对字段field的值加上
increment
increment
可以也可以为负数- 若
key
不存在,则创建一个新的哈希表,且将field
的值,初始化为0
HINCRBYFLOAT
HINCRBYFLOAT key field increment
- 为哈希表
key
中的域field
加上浮点数增量increment
increment
可以也可以为负数- 若
key
不存在,则创建一个新的哈希表,且将field
的值,初始化为0
HSCAN
HSCAN key cursor [MATCH pattern] [COUNT count]
- 基于游标迭代
- 参考
SCAN