今天整理了一下一些基础且高频的redis命令

redis中的通用命令

  • keys * 查看符合模版的所有的key
  • del 删除一个指定的key
  • exists 判断key是否存在
  • expire 给一个key设置有效期,有效期到期时,这个key就会被删除掉
  • ttl 查看一个key的剩余有效期

1.string类型

  • set 添加或者修改已经存在的一个String类型的键值对
  • get 根据key获取String类型的value
  • mset 批量添加多个String类型的键值对
  • mget 批量获取多个String类型的value
  • incr 让一个整型的key自增1
  • decr 让一个整型的key自减1
  • incrby 让一个整型的key自增并指定要增加的大小
  • decrby 让一个整型的key自减并指定要减少的大小
  • setnx 添加一个String类型的键值对,前提是这个key不存在,否则不执行
  • setex 添加一个String类型的键值对,并且指定有效期 (set + expire组合)

2.hash类型

  • hset 添加或者修改一个hash类型的值.
    hset key field value
  • hget 获取一个hash类型的值.
    hget key field
  • hmset 批量的添加或者修改hash类型的值.
    hmset key field value [field value ...]
  • hmget 批量的获取hash类型的值.
    hmget key field [field ...]
  • hgetall 获取所有的hash类型的key.
    hgetall key
  • hincrby 让对应的key的值添加或者减少对应的值(正数添加,负数减少).
    hincrby key field increment
  • hsetnx 添加一个hash类型的值,如果要添加的key的值已经存在,则不执行,如果存在则执行
    hsetnx key field value
  • hkeys 获取当前hash类型的值的所有的key.
    hkeys key

一些注意事项
hmset和hset的用法大体一样,都是用于添加或者修改(批量)hash类型值的,但是返回结果不相同,hset的返回结果是执行影响的行数,而hmset返回结果是ok或者是nil

3.List类型

Redis中的list类型底层是一个双向链表,所以在操作的时候可以从左或者右进行操作

  • lpush 从左边添加list类型的值
    lpush key value [value ...]
  • lpop 从左边删除list类型的值
    lpop key
  • rpush 从右边添加list类型的值
    rpush key value [value ...]
  • rpop 从右边删除list类型的值
    rpop key
  • lrange 查询list类型的值,要设置起始位置(start)和结束位置(stop)的索引
    lrange key start stop
  • blpop和brpop 阻塞式的删除,在使用blpop或者brpop进行删除时,如果list中对应的key有对象时则直接删除,如果没有值并且在规定时间(timeout)内并不会直接结束,而是等待timeout时间过期之后再结束,如果在等待期间有值添加进来会直接进行删除
    blpop key [key ...] timeout

4.Set类型

  • sadd 向set中添加一个或者对个元素
    sadd key member [member ...]
  • srem 从set中删除指定的元素
    srem key member [member ...]
  • scard 查询set中元素的个数
    scard key
  • smembers 查询set中所有的元素
    smembers key
  • sismember 判断一个元素是否在set中
    sismember key member
  • sinter 求多个key中的交集
    sinter key [key ...]
  • sunion 求多个key的并集
    sunion key [key ...]
  • sdiff 求前面的key-后面的key剩下的元素
    sdiff key [key ...]

5.SortedSet(zSet)类型

  • zadd 添加一个或者多个元素到zset中,如果已经存在则更新其score值
    zadd key score member
  • zrem 删除zset中的一个元素
    zrem key member
  • zscore 获取zset中指定元素的score值
    zscore key member
  • zcard 获取zset中元素的个数
    zcard key
  • zcount 统计score值在给定范围内所有元素的个数
    zcount key min max
  • zincrby 让zset中指定元素自增,大小为指定的increment值
    zincrby key increment member
  • zrange 按照score排序之后,获取指定排名范围内的元素
    zrange key start stop
  • zrangebyscore 按照score排序之后,获取指定score范围内的元素
    zrangebyscore key min max
  • zrank 获取zset中指定元素的排名
    zrank key member
  • zdiffzinterzunion 求差集、交集、并集

**注意:所有的排名默认都是升序,如果要降序则在命令的Z后面添加REV即可,例如:

  • 升序获取sorted set 中的指定元素的排名:zrank key member
  • 降序获取sorted set 中的指定元素的排名:zrevrank key memeber