Redis命令

Redis 命令

使用ssh连接到服务器

在命令行输入

redis-cli -h 主机地址 -p 端口号 -a 密码

连接到Redis服务器上
此时可能出现Warning: Using a password with ‘-a’ or ‘-u’ option on the command line interface may not be safe.这个不用管 已经连接到Redis上了

常用命令

字符串

字符串key值区分大小写

  • SET {key} {value}{EX|PX|NX|XX}
    设置一个字符串key和值 可设置过期时间。
SET aa succ EX 5  //设置过期时间为5秒   PX参数为毫秒
SET aa succ NX   //只在键不存在时, 才对键进行设置操作   相当于SETNX aa succ 
SET aa succ XX   //只在键存在时, 才对键进行设置操作 (覆盖) 相当于SETXX aa succ 
  • GET {key}
    返回与键 key 相关联的字符串值。
    返回值:
    如果键 key 不存在, 那么返回特殊值 nil ; 否则, 返回键 key 的值。
    如果键 key 的值并非字符串类型, 那么返回一个错误, 因为 GET 命令只能用于字符串值

  • GETSET{key,value}
    将键 key 的值设为 value , 并返回键 key 在被设置之前的旧值。
    如果键 key 没有旧值, 也即是说, 键 key 在被设置之前并不存在, 那么命令返回 nil 。
    当键 key 存在但不是字符串类型时, 命令返回一个错误。

  • STRLEN{key}
    返回键 key 储存的字符串值的长度。
    当键 key 不存在时, 命令返回 0 。
    当 key 储存的不是字符串值时, 返回一个错误。

  • APPEND{key,value}
    如果键 key 已经存在并且它的值是一个字符串, APPEND 命令将把 value 追加到键 key 现有值的末尾。
    如果 key 不存在, APPEND 就简单地将键 key 的值设为 value , 就像执行 SET key value 一样。
    追加 value 之后, 键 key 的值的长度。

  • SETRANGE{key offset value}
    从偏移量offset开始,使用value替换原字符串的值,如果偏移量大于原字符串的长度,中间的空白将用零字节(zerobytes, “\x00” )进行填充

  • GETRANGE{key start end}
    截取字符串(不影响key本身)

  • INCR{key} /DECR{key}
    为键 key 储存的数字值加/减上一。(会影响key本身的值)
    如果键 key 不存在, 那么它的值会先被初始化为 0 , 然后再执行 INCR/DECR 命令。
    如果键 key 储存的值不能被解释为数字, 那么 INCR/DECR 命令将返回一个错误。

  • INCRBY{key value} / DECRBY{key value}
    为键 key 储存的数字值加/减上值value 。
    如果键 key 不存在, 那么键 key 的值会先被初始化为 0 , 然后再执行 INCRBY/DECRBY 命令。
    如果键 key 储存的值不能被解释为数字, 那么 INCRBY/DECRBY 命令将返回一个错误。

  • INCRBYFLOAT{key value}
    为键 key 储存的值加上浮点数增量 increment 。
    如果键 key 不存在, 那么 INCRBYFLOAT 会先将键 key 的值设为 0 , 然后再执行加法操作。
    如果命令执行成功, 那么键 key 的值会被更新为执行加法计算之后的新值, 并且新值会以字符串的形式返回给调用者。

  • MSET{key1 value1 key2 value2 key3 value3…}
    同时为多个键设置值。
    如果某个给定键已经存在, 那么 MSET 将使用新值去覆盖旧值, 如果这不是你所希望的效果, 请考虑使用 MSETNX 命令, 这个命令只会在所有给定键都不存在的情况下进行设置。
    MSET 是一个原子性(atomic)操作, 所有给定键都会在同一时间内被设置, 不会出现某些键被设置了但是另一些键没有被设置的情况。

  • MSETNX{key1 value1 key2 value2 key3 value3…}
    当且仅当所有给定键都不存在时, 为所有给定键设置值。
    即使只有一个给定键已经存在, MSETNX 命令也会拒绝执行对所有键的设置操作。
    MSETNX 是一个原子性(atomic)操作, 所有给定键要么就全部都被设置, 要么就全部都不设置, 不可能出现第三种状态。
    返回值
    当所有给定键都设置成功时, 命令返回 1 ; 如果因为某个给定键已经存在而导致设置未能成功执行, 那么命令返回 0 。

  • MGET{key1 key2 key3 …}
    返回给定的一个或多个字符串键的值。
    如果给定的字符串键里面, 有某个键不存在, 那么这个键的值将以特殊值 nil 表示。

哈希表

  • HSET{table field value}
    将哈希表 hash 中域 field 的值设置为 value 。
    如果给定的哈希表并不存在, 那么一个新的哈希表将被创建并执行 HSET 操作。
    如果域 field 已经存在于哈希表中, 那么它的旧值将被新值 value 覆盖

  • HSETNX{table field value}
    当且仅当域 field 尚未存在于哈希表的情况下, 将它的值设置为 value 。
    如果给定域已经存在于哈希表当中, 那么命令将放弃执行设置操作。(无法覆盖原有值)
    如果哈希表 hash 不存在, 那么一个新的哈希表将被创建并执行 HSETNX 命令。

  • HGET{table field}
    返回哈希表中给定域的值。

  • HEXISTS{table field}
    检查给定域 field 是否存在于哈希表 hash 当中。
    返回值
    HEXISTS 命令在给定域存在时返回 1 , 在给定域不存在时返回 0 。

  • HDEL{table field1 field2…}
    删除哈希表中的一个或多个指定域,不存在的域将被忽略。

  • HLEN{table}
    返回哈希表中字段的数量

  • HSTRLEN{table field}
    返回哈希表 key 中, 与给定域 field 相关联的值的字符串长度(string length)。
    如果给定的键或者域不存在, 那么命令返回 0 。

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

  • HINCRBYFLOAT{table field value}
    为哈希表 key 中的域 field 加上浮点数增量 increment 。
    如果哈希表中没有域 field ,那么 HINCRBYFLOAT 会先将域 field 的值设为 0 ,然后再执行加法操作。
    如果键 key 不存在,那么 HINCRBYFLOAT 会先创建一个哈希表,再创建域 field ,最后再执行加法操作。
    当以下任意一个条件发生时,返回一个错误:
    域 field 的值不是字符串类型(因为 redis 中的数字和浮点数都以字符串的形式保存,所以它们都属于字符串类型)
    域 field 当前的值或给定的增量 increment 不能解释(parse)为双精度浮点数(double precision floating point number)

  • HMSET{table field1 value1 field2 value2…}
    同时将多个 field-value (域-值)对设置到哈希表 key 中。
    此命令会覆盖哈希表中已存在的域。
    如果 key 不存在,一个空哈希表被创建并执行 HMSET 操作。

  • HMGET{table field1 field2 field3…}
    返回哈希表 key 中,一个或多个给定域的值。
    如果给定的域不存在于哈希表,那么返回一个 nil 值。
    因为不存在的 key 被当作一个空哈希表来处理,所以对一个不存在的 key 进行 HMGET 操作将返回一个只带有 nil 值的表。

  • HKEYS{table}
    一个包含哈希表中所有域的表。
    当 key 不存在时,返回一个空表。

  • HVALS{table}
    返回哈希表 key 中所有域的值。

  • HGETALL{table}
    返回哈希表 key 中,所有的域和值。
    在返回值里,紧跟每个域名(field name)之后是域的值(value),所以返回值的长度是哈希表大小的两倍。
    返回:
    1)key1
    2)value1
    3)key2
    4)value2

  • HSCAN{}
    未知???

列表

  • LPUSH{list value1 value2…}
    将一个或多个值 value 插入到列表 list 的表头,返回列表的长度

  • LPUSHX{list value}
    将值 value 插入到列表 list 的表头,当且仅当 list 存在并且是一个列表。
    如果key不存在,命令无效

  • RPUSH{list value1 value2…}
    将一个或多个值 value 插入到列表 list 的表尾(最右边),返回列表的长度

  • RPUSHX{list value}
    将值 value 插入到列表 list 的表头,当且仅当 list 存在并且是一个列表。
    如果list 不存在,命令无效

  • LPOP{value}
    移除并返回列表 list 的头元素。
    返回值:列表的头元素(当前移出的元素)。 当 list 不存在时,返回 nil 。

  • RPOP{value}
    移除并返回列表 list 的尾元素。
    返回值:列表的尾元素(当前移出的元素)。 当 list 不存在时,返回 nil 。

  • RPOPLPUSH{list1 list2}
    将列表1的尾元素移出,插入到list2的表头
    如果 list1 不存在,值 nil 被返回,并且不执行其他动作。
    如果 list1 和 list2 相同,则列表中的表尾元素被移动到表头,并返回该元素,可以把这种特殊情况视作列表的旋转(rotation)操作。
    返回值:被弹出的元素

  • LREM{list count value}
    移除列表中的所有值为value的元素
    count > 0 : 从表头开始向表尾搜索,移除与 value 相等的元素,数量为 count 。
    count < 0 : 从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count 的绝对值。
    count = 0 : 移除表中所有与 value 相等的值。

  • LLEN{list}
    返回列表的长度

  • LINDEX{list index}
    返回列表中的下标为 index 的元素。
    index >= 0 :从表头开始计算
    index <0 :从表尾开始计算

  • LINSERT{list BEFORE|AFTER new_value value}
    将值 new_value 插入到列表 key 当中,位于值 value之前或之后。
    当 value不存在于列表 list时,不执行任何操作,返回-1
    当 list不存在时, list被视为空列表,不执行任何操作,返回 0
    如果 list不是列表类型,返回一个错误
    如果命令执行成功,返回插入操作完成之后,列表的长度。

  • LSET{list index value}
    将列表 list 下标为 index 的元素的值设置为 value 。
    当 index 参数超出范围,或对一个空列表( key 不存在)进行 LSET 时,返回一个错误。
    操作成功返回 ok ,否则返回错误信息。

  • LRANGE{list start end}
    返回列表中的value start为起始下标 end为结束下标 如果为-1就是返回整个列表

  • LTRIM{list start end}
    截取列表中指定下标范围的value 与编程语言的trim函数清除不一样(坑)
    命令执行成功时,返回 ok 。

  • BLPOP{list timeout}
    阻塞模式弹出列表的第一个value
    LPOP的阻塞模式,直到timeout时间结束前 将阻塞连接,直到等待超时
    超时参数 timeout 接受一个以秒为单位的数字作为值。超时参数设为 0 表示阻塞时间可以无限期

  • BRPOP{list timeout}
    阻塞模式弹出列表的最后一个value
    RPOP的阻塞模式,直到timeout时间结束前 将阻塞连接,直到等待超时
    超时参数 timeout 接受一个以秒为单位的数字作为值。超时参数设为 0 表示阻塞时间可以无限期

  • BRPOPLPUSH{list1 list2}
    RPOPLPUSH的阻塞模式
    将列表 list1中的最后一个元素(尾元素)弹出,并返回给客户端。
    将 list1弹出的元素插入到列表 list2,作为 list2列表的的头元素
    超时参数 timeout 接受一个以秒为单位的数字作为值。超时参数设为 0 表示阻塞时间可以无限期

集合

  • SADD
  • SISMEMBER
  • SPOP
  • SRANDMEMBER
  • SREM
  • SMOVE
  • SCARD
  • SMEMBERS
  • SSCAN
  • SINTER
  • SINTERSTORE
  • SUNION
  • SUNIONSTORE
  • SDIFF
  • SDIFFSTORE

#有序集合

  • ZADD
  • ZSCORE
  • ZINCRBY
  • ZCARD
  • ZCOUNT
  • ZRANGE
  • ZREVRANGE
  • ZRANGEBYSCORE
  • ZREVRANGEBYSCORE
  • ZRANK
  • ZREVRANK
  • ZREM
  • ZREMRANGEBYRANK
  • ZREMRANGEBYSCORE
  • ZRANGEBYLEX
  • ZLEXCOUNT
  • ZREMRANGEBYLEX
  • ZSCAN
  • ZUNIONSTORE
  • ZINTERSTORE
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值