redis基本命令:二

以下是关于字符串的诸多命令:
APPEND key value
 如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾。
 如果 key 不存在, APPEND 就简单地将给定 key 设为 value ,就像执行 SET key value 一样。
 可用版本:>= 2.0.0
 时间复杂度:平摊O(1)
 返回值:追加 value 之后, key 中字符串的长度
 
BITCOUNT key [start] [end]
 计算给定字符串中,被设置为 1 的比特位的数量。
 一般情况下,给定的整个字符串都会被进行计数,通过指定额外的 start 或 end 参数,可以让计数只在特定的位上进行。
 start 和 end 参数的设置和 GETRANGE 命令类似,都可以使用负数值: 比如 -1 表示最后一个字节, -2 表示倒数第二个字节,以此类推。
 可用版本:>= 2.6.0
 时间复杂度:O(N)
 返回值:被设置为 1 的位的数量。
 
BITOP operation destkey key [key ...]
 对一个或多个保存二进制位的字符串 key 进行位元操作,并将结果保存到 destkey 上。
  operation 可以是 AND 、 OR 、 NOT 、 XOR 这四种操作中的任意一种:
   BITOP AND destkey key [key ...] ,对一个或多个 key 求逻辑并,并将结果保存到 destkey 。
   BITOP OR destkey key [key ...] ,对一个或多个 key 求逻辑或,并将结果保存到 destkey 。
   BITOP XOR destkey key [key ...] ,对一个或多个 key 求逻辑异或,并将结果保存到 destkey 。
   BITOP NOT destkey key ,对给定 key 求逻辑非,并将结果保存到 destkey 。
   除了 NOT 操作之外,其他操作都可以接受一个或多个 key 作为输入。
  处理不同长度的字符串
 当 BITOP 处理不同长度的字符串时,较短的那个字符串所缺少的部分会被看作 0 。空的 key 也被看作是包含 0 的字符串序列。
 可用版本:>= 2.6.0
 时间复杂度:O(N)
 返回值:保存到 destkey 的字符串的长度,和输入 key 中最长的字符串长度相等。
 
BITFIELD key [GET type offset] [SET type offset value] [INCRBY type offset increment] [OVERFLOW WRAP|SAT|FAIL]
 BITFIELD 命令可以将一个 Redis 字符串看作是一个由二进制位组成的数组, 并对这个数组中储存的长度不同的整数进行访问 (被储存的整数无需进行对齐)。
 可用版本:>= 3.2.0
 时间复杂度:每个子命令的复杂度为 O(1) 。
 返回值:BITFIELD 命令的返回值是一个数组, 数组中的每个元素对应一个被执行的子命令。 需要注意的是, OVERFLOW 子命令本身并不产生任何回复。
DECR key
 将 key 中储存的数字值减一。
 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECR 操作。如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
 本操作的值限制在 64 位(bit)有符号数字表示之内。关于递增(increment) / 递减(decrement)操作的更多信息,请参见 INCR 命令。
 可用版本:>= 1.0.0
 时间复杂度:O(1)
 返回值:执行 DECR 命令之后 key 的值。
INCR key
 将 key 中储存的数字值增一。
 
DECRBY key decrement
 将 key 所储存的值减去减量 decrement 。
 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECRBY 操作。
 如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
 本操作的值限制在 64 位(bit)有符号数字表示之内。
 可用版本:>= 1.0.0
 时间复杂度:O(1)
 返回值:减去 decrement 之后, key 的值。
INCRBY key increment
 将 key 所储存的值加上增量 increment 。
INCRBYFLOAT key increment
 为 key 中所储存的值加上浮点数增量 increment 。
 如果 key 不存在,那么 INCRBYFLOAT 会先将 key 的值设为 0 ,再执行加法操作。
 如果命令执行成功,那么 key 的值会被更新为(执行加法之后的)新值,并且新值会以字符串的形式返回给调用者。
GET key
 返回 key 所关联的字符串值。
 如果 key 不存在那么返回特殊值 nil 。假如 key 储存的值不是字符串类型,返回一个错误,因为 GET 只能用于处理字符串值。
 可用版本:>= 1.0.0
 时间复杂度:O(1)
 返回值:当 key 不存在时,返回 nil ,否则,返回 key 的值。如果 key 不是字符串类型,那么返回一个错误。
MGET key [key ...]
 返回所有(一个或多个)给定 key 的值。
 如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil 。因此,该命令永不失败。
 可用版本:>= 1.0.0
 时间复杂度:O(N) , N 为给定 key 的数量。
 返回值:一个包含所有给定 key 的值的列表。
GETBIT key offset
 对 key 所储存的字符串值,获取指定偏移量上的位(bit)。
 当 offset 比字符串值的长度大,或者 key 不存在时,返回 0 。
 可用版本:>= 2.2.0
 时间复杂度:O(1)
 返回值:字符串值指定偏移量上的位(bit)。
SETBIT key offset value
 对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。
 位的设置或清除取决于 value 参数,可以是 0 也可以是 1 。
 当 key 不存在时,自动生成一个新的字符串值。
 字符串会进行伸展(grown)以确保它可以将 value 保存在指定的偏移量上。当字符串值进行伸展时,空白位置以 0 填充。
GETRANGE key start end
 返回 key 中字符串值的子字符串,字符串的截取范围由 start 和 end 两个偏移量决定(包括 start 和 end 在内)。
 GETRANGE 通过保证子字符串的值域(range)不超过实际字符串的值域来处理超出范围的值域请求。
 可用版本:>= 2.4.0
 时间复杂度:O(N), N 为要返回的字符串的长度。
 复杂度最终由字符串的返回值长度决定,但因为从已有字符串中取出子字符串的操作非常廉价(cheap),所以对于长度不大的字符串,该操作的复杂度也可看作O(1)。
 返回值:截取得出的子字符串。
SETRANGE key offset value
 用 value 参数覆写(overwrite)给定 key 所储存的字符串值,从偏移量 offset 开始。
 不存在的 key 当作空白字符串处理。
GETSET key value
 将给定 key 的值设为 value ,并返回 key 的旧值(old value)。
 当 key 存在但不是字符串类型时,返回一个错误。
 可用版本:>= 1.0.0
 时间复杂度:O(1)
 返回值:返回给定 key 的旧值。当 key 没有旧值时,也即是, key 不存在时,返回 nil 。
SET key value [EX seconds] [PX milliseconds] [NX|XX]
 将字符串值 value 关联到 key 。
 如果 key 已经持有其他值, SET 就覆写旧值,无视类型。
 对于某个原本带有生存时间(TTL)的键来说, 当 SET 命令成功在这个键上执行时, 这个键原有的 TTL 将被清除。
 可选参数
  EX second :设置键的过期时间为 second 秒。 SET key value EX second 效果等同于 SETEX key second value 。
  PX millisecond :设置键的过期时间为 millisecond 毫秒。 SET key value PX millisecond 效果等同于 PSETEX key millisecond value 。
  NX :只在键不存在时,才对键进行设置操作。 SET key value NX 效果等同于 SETNX key value 。
  XX :只在键已经存在时,才对键进行设置操作。
 可用版本:>= 1.0.0
 时间复杂度:O(1)
 返回值:在 Redis 2.6.12 版本以前, SET 命令总是返回 OK 。从 Redis 2.6.12 版本开始, SET 在设置操作成功完成时,才返回 OK 。如果设置了 NX 或者 XX ,但因为条件没达到而造成设置操作未执行,那么命令返回空批量回复(NULL Bulk Reply)。
MSET key value [key value ...]
 同时设置一个或多个 key-value 对。
 如果某个给定 key 已经存在,那么 MSET 会用新值覆盖原来的旧值,如果这不是你所希望的效果,请考虑使用 MSETNX 命令:它只会在所有给定 key 都不存在的情况下进行设置操作。
 可用版本:>= 1.0.1
 时间复杂度:O(N), N 为要设置的 key 数量。
 返回值:总是返回 OK (因为 MSET 不可能失败) 
SETNX key value
 将 key 的值设为 value ,当且仅当 key 不存在。
 若给定的 key 已经存在,则 SETNX 不做任何动作。
 SETNX 是『SET if Not eXists』(如果不存在,则 SET)的简写。
 可用版本:>= 1.0.0
 时间复杂度:O(1)
 返回值:设置成功,返回 1 。设置失败,返回 0 。
MSETNX key value [key value ...]
 同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。
 即使只有一个给定 key 已存在, MSETNX 也会拒绝执行所有给定 key 的设置操作。
 MSETNX 是原子性的,因此它可以用作设置多个不同 key 表示不同字段(field)的唯一性逻辑对象(unique logic object),所有字段要么全被设置,要么全不被设置。
 可用版本:>= 1.0.1
 时间复杂度:O(N), N 为要设置的 key 的数量。
 返回值:当所有 key 都成功设置,返回 1 。如果所有给定 key 都设置失败(至少有一个 key 已经存在),那么返回 0 。
 
PSETEX key milliseconds value
 这个命令和 SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间,而不是像 SETEX 命令那样,以秒为单位。
 可用版本:>= 2.6.0
 时间复杂度:O(1)
 返回值:设置成功时返回 OK 。
SETEX key seconds value
 将值 value 关联到 key ,并将 key 的生存时间设为 seconds (以秒为单位)。
 如果 key 已经存在, SETEX 命令将覆写旧值。
 不同之处是, SETEX 是一个原子性(atomic)操作,关联值和设置生存时间两个动作会在同一时间内完成,该命令在 Redis 用作缓存时,非常实用。
 可用版本:>= 2.0.0
 时间复杂度:O(1)
 返回值:设置成功时返回 OK 。当 seconds 参数不合法时,返回一个错误。 
 
STRLEN key
 返回 key 所储存的字符串值的长度。
 当 key 储存的不是字符串值时,返回一个错误。
 可用版本:>= 2.2.0
 复杂度:O(1)
 返回值:字符串值的长度。当 key 不存在时,返回 0 。 
 
 
 
 
 
 
 
 
 
 
 
 
 



 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值