Redis命令整理(SET,HASH)

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
  • membersource集合中移动到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