redis常用命令

目录

1、列表操作

2、哈希类型(散列类型)

3、集合类型

4、有序集合类型

5、对 key 的操作

6、字符串类型


redis指令不区分大小写。

1、列表操作

提前说明:关于列表的操作,如果涉及指定下标索引值的参数,非负数表示从左边开始数,负数表示从右边开始数。

LPUSH  key  val0 val1 val2 ....    //如果列表key没有,就会自动创建,从列表的左边依次加入列表

RPUSH key val0 val1 val2 ....   //从列表右边依次加入列表

LPUSHX key value  //向左边列表头插入一个元素,仅仅只能一个元素,如果列表不存在,则什么都不做,返回0,否则插入元素

RPUSHX key value //向右边列表头插入一个元素

LPOP key //获取列表最左边的头元素并将其移除列表

RPOP key //获取列表最右边的头元素并将其移除列表

LLEN key     //查看列表的长度

LRANGE key start  stop  //获取列表中 [start,  stop] 区间的元素,闭区间。 列表从左边数,下标以0开始,从右边数,下标以 -1 开始,正数代表从左边数,负数代表从右边数,比如 0 代表左边第一个元素, -1代表右边第一个元素。

1、如果 start 和 stop 都是非负数。

        如果 start <= stop ,则从左边数,获取[start,  stop] 区间的元素。

        如果 start > stop,则返回空。

2、如果 start 和 stop 都是负数。

        如果 start <= stop,则从右边数,获取区间元素,比如 LRANGE key -1  -2  表示获取从右边数的第一个和第二个元素。

        如果 start > stop, 则返回空。

3、如果 start 和 stop 一正一负。

        则看start 的实际位置是否在 stop 的实际位置之前,如果是则返回区间元素, 如果不是,返回空。

LREM key count value  //表示删除列表前 count 个元素中值为 value 的元素。

1、count > 0  表示从左边数,    2、count  < 0 表示从右边数,    3、count  = 0  表示列表的全部元素。

BLPOP key1 key2 ...  timeout  //阻塞获取第一个不为空的列表的最左元素,并将该元素移除,如果全为空,则阻塞,直到某个列表有新元素加入,或者直到 timeout 超时时间结束。

1、timeout = 0 时,表示无限阻塞下去,除非某个列表不为空。

2、timeout > 0 时,表示超时时间也可以解除阻塞状态,并返回空给客户端。

BRPOP key1 key2 ...  timeout   //阻塞获取第一个不为空的列表的最右元素,和 BLPOP 功能类似。

BRPOPLPUSH  sourcekey  destinationkey  timeout  // 阻塞获取 sourcekey 列表的最右边的元素,timeout 为超时时间,如果能够在超时时间内获取到元素,则将该元素返回给客户端,并将其添加到 destinationkey 列表的最左边,如果从 sourcekey 列表中获取不到元素,则返回给客户端空,并且不做任何其它操作。

RPOPLPUSH  sourcekey  destinationkey  //非阻塞方式获取 sourcekey 列表的最右边的元素,将该元素返回给客户端,并将其添加到 destinationkey 列表的最左边,如果从 sourcekey 列表中获取不到元素,则返回给客户端空,并且不做任何其它操作。

LINDEX key  index //获取下标为 index 的元素。如果 index 超出范围,则返回空,如果 index 为非负数,则从左边数,否则从右边数。

LINSERT key BEFORE|AFTER pivot value  // 将 value 插入 pivot 之前或者之后,如果 key 为空或者不存在,则什么都不做,返回0,如果 key 存在且不为空,pivot 存在,则返回插入后列表长度,如果 pivot 不存在,则什么都不做,返回 -1。

LSET key index value   //将列表的 index 位置处设置为 value 值,成功返回OK,如果 index 超出范围或者列表不存在,则返回错误信息。

LTRIM key start stop  // 将列表的 [start, stop] 区间保留下来,其它的元素删除,成功返回ok。


 

2、哈希类型(散列类型)

HSET key field value   //设置哈希对象中的 field 字段值为 value,如果字段 filed 不存在,则就添加,如果字段 field 存在,则更新

HGET key field    //获取哈希对象中的 field 字段值,没有该字段,则返回空。

HMSET key  field1 value1 field2 value2 ....    //一次设置多个<字段名, 字段值>。

HMGET key field1  field2 ...    // 一次获取多个字段的值。

HGETALL key  //获取这个哈希对象的所有<字段名, 字段值>。

HEXISTS key field  //判断哈希对象的该字段是否存在,如果存在,返回1,否则其它情况一律返回0。

HDEL key field1 field2 ....  // 删除哈希对象的相关<字段名, 字段值>。

HINCRBY key field increment   //为哈希表 key 中的域 field 的值加上增量 increment 。增量也可以为负数,相当于对给定域进行减法操作。如果 key 不存在,一个新的哈希表被创建并执行 HINCRBY命令。如果域 field 不存在,那么在执行命令前,域的值被初始化为 0 。对一个储存字符串值的域 field 执行 HINCRBY 命令将造成一个错误。

HINCRBYFLOAT key field increment   //为哈希表 key 中的域 field 的值加上浮点数增量 increment 。

HKEYS key  //获取这个哈希对象的所有字段名 field。

HLEN key  //获取这个哈希对象的所有字段数量。

HSETNX key field value   //若 field 已经存在,则什么都不做,如果不存在,则添加<字段,字段值>。

HVALS key  //获取这个哈希对象的所有字段的值。

HSCAN key cursor [MATCH pattern] [COUNT count]  //遍历哈希对象的字段,可以设置从什么位置开始遍历,设置正则匹配,每次遍历的元素个数。和 SCAN 命令是一个意思,只是 HSCAN 命令只是针对一个哈希对象遍历的。


 

3、集合类型

SADD key value1 value2 ...    // 向集合中添加若干个元素,如果元素已经存在,则忽略,返回实际添加成功的元素个数。

SREM key value1 value2 ....    // 删除集合中的元素,如果元素不存在,则忽略,返回实际删除成功的元素个数。

SCARD key    //返回集合中的元素个数。

SDIFF key  或者  SDIFF key1  key2 ...  // 如果只有一个聚合,就返回集合中的全部元素,如果是多个集合,那就是返回第一个集合中与其它所有集合都不同的元素(即 第一个集合与所有集合的差集)。

SDIFFSTORE destination key key2 ...  // 作用和 SDIFF 一样,只是将差集存储到 destination 集合中去。

SINTER key1 key2 ...   //  返回这些集合的交集,如果其中有空集(不存在的集合被视为空集),那么结果也为空集。

SINTERSTORE destination key key2 ..  //将集合的交集存到 destination 集合中。

SISMENBER key value   //判断 value 是否是集合的元素,是,返回1,不是,返回-1。

SMEMBERS key   // 返回集合中的所有元素。

SMOVE source destination member   // 将集合的一个元素移到另一个集合中去。

SPOP key   // 从集合中返回一个随机元素,并从集合中移除。

SRANDMEMBER  key  // 从集合中返回一个随机元素,不从集合中移除。

SREM member1 member2 ...  // 删除集合中的若干个元素。

SUNION key1 key2 ...    // 返回若干个集合的并集。

SUNIONSTORE destination key1 key2 ...  // 将若干个集合的并集存入另一个集合 destination。

SSCAN key cursor [MATCH pattern] [COUNT count]  // 扫描,和scan一样,只是扫描的对象是集合而已。


 

4、有序集合类型

ZADD key score member score1 member1 score2 member2 ... //添加若干个元素,每个元素都有分值。

ZCARD key  //返回集合的元素个数。

ZCOUNT key min max   // 返回集合中分值在 [min, max] 区间的元素个数。

ZINCRBY key increment member  //在集合里的元素 member 的分值上加 increment 。

ZRANGE key start stop [WITHSCORES]  // 返回集合中下标 [start, stop] 区间的元素(不包含分值),如果带上 WITHSCORES 参数就会将分值一起返回。

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]  //返回分值在 [min, max] 区间的元素,WITHSCORES 参数就会将分值一起返回,LIMIT offset count 的意思是在 [min, max] 区间的元素里面,从第 offset 个元素开始,只获取 count 个元素,然后返回这 count 个元素。

ZRANK key member    // 查看元素 member 在集合中按分值排名第几,0表示第一。

ZREM key member [member ...]   // 删除集合中的指定元素。

ZREMRANGEBYRANK key start stop  // 删除集合中按分值排名在 [start, stop] 区间的元素。

ZREMRANGEBYSCORE key min max  // 删除集合中分值在 [min, max] 区间的元素。

ZREVRANGE key start stop [WITHSCORES]  // 返回集合中排名在 [start, stop] 区间的元素的逆序列。

ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count] //返回集合中分值在 [min, max] 区间的元素的逆序列。

ZREVRANK key member // 返回 member 在集合中按照分值逆序排名中的名次,0 表示倒数第一。

ZSCORE key member //返回集合中member元素的分值

ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]  //将 numkeys 数量的有序集合做并集,并且将并集存入集合 destination 中, WEIGHTS 参数是可选的,表示每个集合对应的乘法因子,每个集合的每个元素的分值都要乘上对应的 weight ,默认 weight 为 1 , AGGREGATE 也是可选的,指定聚合方式,默认是 SUM 方式,表示元素的并集,分值相加, MIN 表示取分值最小的, MAX 表示取分值最大的。

ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX] // 交集,和 ZUNIONSTORE 指令类似。

ZSCAN key cursor [MATCH pattern] [COUNT count]   // 扫描,和 scan 一样,针对的目标是有序集合。


 

5、对 key 的操作

DEL key key2 ...   // 删除若干个key,key 可以是字符串,也可以是集合,列表,哈希,等等,只不过时间复杂度不一样,删除列表的话,就会一一删除掉列表里的每个元素,复杂符为 O(N)。 返回删除的键的数量。

EXISTS key  // 检查 key 是否存在,存在返回1,否则返回 0。

EXPIRE key seconds  // 设置 key  的生命周期,单位为秒。默认为永久的

PEXPIRE key milliseconds  // 设置 key  的生命周期,单位为毫秒。默认为永久的

EXPIREAT key timestamp  // 设置 key 的生命结束时刻,Timestamp 为 UNIX 时间戳。

KEYS  pattern   //全库扫描匹配,pattern就是一个规则参数。

MIGRATE host port key destination-db timeout [COPY] [REPLACE]  // 将本 redis 实例上的 key 和 value 传递到另一个redis 实例上(host 主机名,port 端口, destination-db 数据库号,timeout 为两个 redis 实例通信的最大时间间隔),并将 key 从本实例上删除, 如果有 COPY,表示只是复制一份过去,并不会从本实例上删除,如果有 REPLACE,表示如果目的redis 实例上已经存在该 key 了,则替换掉它。

MOVE key db // 将 key 移动到指定数据库里去。

PERSIST key  // 设置 key 为永久不过期的。

TTL key // 返回 key 的剩余生命时间,单位为秒,-2 表示 key 不存在,-1 表示永久。

PTTL key // 返回 key 的剩余生命时间,单位为毫秒,-2 表示 key 不存在,-1 表示永久。

RANDOMKEY  //随机返回一个key

RENAME oldKey newKey   // 给 key 改名字,如果新旧名字一样,或者旧名字不存在, 返回错误,如果新名字已经存在,则覆盖掉已经存在的<k, v>。

RENAMENX  oldKey newKey   // 仅当新名字不存在时,才会进行名字修改。

TYPE key // 返回 key 的类型。

SCAN cursor [MATCH pattern] [COUNT count]  // 扫描匹配。


 

6、字符串类型

APPEND key value  // 将 value 追加到 key 的值后。

SET key value [EX seconds] [PX milliseconds]  [NX | XX]  // 设置<key, value> ,EX 选项表示过期时间,单位秒,PX 表示过期时间,单位毫秒,NX 选项表示 key 不存在时才执行,XX 选项表示 key 存在时才执行。 如果 set key value 中 value 是新值要覆盖旧值,且如果没有指定过期时间的话,即为永久,过期时间也会覆盖。

GET key  // 返回 key 的 value。

STRLEN key // 返回 key 对应的字符串长度。

SETRANGE key offset value   // 用 value 参数覆写(overwrite)给定 key 所储存的字符串值,从偏移量 offset 开始。如果 offset 超出了范围,则原字符串和 offset 之间的空白将由 "\x00" 填充。

SETBIT key offset value  // (以 ascll 码为准)将字符串的 offset 位设置为 value,偏移量从 0 开始,value 只能是 1 或者 0。

GETBIT key offset // 返回字符串的 offset 位上的比特值。

MSETNX key value  key1  value1 ....   //  当所有的 key 都不存在时,才会执行指令。

MSET key value key1 value1 ...  //  设置多个<k, v> 。

MGET key key2 ...    // 获取多个 key 的 value,如果 key 不存在,则 value 为空。

INCRBYFLOAT key increment   // 给 key 的 value 值加上浮点数 increment,increment 既可以是浮点数,也可以是整数,最多只能表示小数点的后十七位。

INCRBY key increment   // 给 key 的 value 值加上 increment,increment 只能是整数。

INCR key // 自增1。

GETSET key value   // 设置 key 的值为 value, 并且返回 key 的旧值。

GETRANGE key start stop   // 返回 key 的值的 [start,stop] 区间的子串。

DECRBY key decrement  // 将 key 的 value 值减去 decrement, decrement 只能是整数。

DECR key   // 自减 1 。

BITCOUNT key [start] [end]   // 统计 key 的 value 值里有多少个为 1 的比特位。 

BITOP operation destkey key [key ...]  // 对若干个 key 的 value 值进行按位逻辑运算,有 AND 、 OR 、 NOT 、 XOR。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值