redis-2-字符串命令以及数据结构类型

通过这篇文章可以知道:

  • redis有哪些数据结构类型?,通过什么命令查询某个键是什么数据结构类型?
  • redis的字符串内部编码有哪些?,如何查询某个是字符串是什么编码?
  • 键总数如何查?一分钟不超过5次访问如何实现?

常规命令

  • 当前数据库中键的总数
    dbsize
  • 键的过期时间信息
    ttl命令会返回键的剩余过期时间, 它有3种返回值:
    大于等于0的整数: 键剩余的过期时间。
    -1: 键没设置过期时间。
    -2: 键不存在
  • 键的数据结构类型
    type key
    type命令实际返回的就是当前键的数据结构类型,对外显示的,实际上每种数据结构都有自己底层的内部编码实现, 而且是多种实现,这样Redis会在合适的场景选择合适的内部编码
    数据结构与内部编码

字符串命令操作

  • set命令操作
set命令会将过期时间设置进行清除的

ex seconds: 为键设置秒级过期时间。
px milliseconds: 为键设置毫秒级过期时间。
nx: 键必须不存在, 才可以设置成功, 用于添加。
xx: 与nx相反, 键必须存在, 才可以设置成功, 用于更新

  setex key seconds value
  setnx key value
  set hello jedis xx
  • 批量设置和批量获取

    mset key value [key value ...]
    mget key [key ...]
    
  • 自增自减法

    decr key
    incrby key increment
    decrby key decrement
    incrbyfloat key increment
    

不常用命令

长度:strlen key 返回的是字节数,中文则是3个字节
设置并返回原值:getset key value
获取部分字符串:getrange key start end

字符串内部编码

字符串类型的内部编码有3种:
·int: 8个字节的长整型。
·embstr: 小于等于39个字节的字符串。
·raw: 大于39个字节的字符串

  127.0.0.1:6379> set key 8653
  OK
  127.0.0.1:6379> object encoding key
  "int"

时间复杂度

字符串键时间复杂度

应用场景

某段时间不超过多少次之类的场景


一分钟不超过5次

你可能感兴趣的:(redis-2-字符串命令以及数据结构类型)