redis详解

1.全局命令详解

  • keys PATTERN (>= 1.0.0):查看符合条件的键,返回给定模式的 key 列表 (Array)   查看所有键(keys *)(导致数据库暂时被锁住)O(n)
  • dbsize (>= 1.0.0):当前数据库的 key 的数量(直接获取Redis内置的键总数变量)O(1)
  • exists KEY (>= 1.0.0) :key 存在返回 1 ,否则返回 0
  • del key [key ...](>= 1.0.0):被删除 key 的数量
  • expire key seconds(>= 1.0.0):设置 key 的过期时间,(单位以秒计)设置成功返回 1,当 key 不存在或者不能为 key 设置过期时间时返回 0
  • expireat key time_in_unix_timestamp(>= 1.0.0):设置 key 的在指定时间过期,设置成功返回 1,当 key 不存在或者不能为 key 设置过期时间时返回 0
  • ttl key(>= 1.0.0):以秒为单位返回 key 的剩余过期时间(当 key 不存在时,返回 -2 , 当 key 存在但没有设置剩余生存时间时,返回 -1 )
  • pttl key(>= 2.6.0):以毫秒为单位返回 key 的剩余过期时间(当 key 不存在时,返回 -2 。 当 key 存在但没有设置剩余生存时间时,返回 -1 )
  • type key(>= 1.0.0):返回 key 所储存的值的类型(
    • none (key不存在)
    • string (字符串)
    • list (列表)
    • set (集合)
    • zset (有序集)
    • hash (哈希表)
  • randomkey(>= 1.0.0):从当前数据库中随机返回一个 key (当数据库为空时,返回 nil (windows 系统返回 null))
  • rename oldKey newKey(>= 1.0.0):修改 key 的名称 (当 oldKey 和 newKey 相同,或者 oldKey 不存在时,返回一个错误。 当 newKey已经存在时, rename命令将覆盖旧值)
  • renamenx oldKey newKey(>= 1.0.0):修改成功时返回 1 。 如果 newKey 已经存在返回 0
  • object encoding key(>= 1.0.0):查询内部编码

2.数据结构和内部结构

  • string 
    • int :      8个字节的长整型
    • embstr:小于等于39个字节的字符串
    • raw:     大于39个字节的字符串
  • hash
    • ziplist: 使用更加紧凑的结构实现多个元素的连续存储
      • 元素个数  < hash-max-ziplist-entries(默认512个)
      • 所有值     < hash-max-ziplist-value(默认64个字节)
    • hashtable:当无法满足ziplist的条件时,使用hashtable作为哈希的内部实现,读写时间复杂度为O(1)
  • list 
    • ziplist: 使用更加紧凑的结构实现多个元素的连续存储
      • 元素个数  < list-max-ziplist-entries(默认512个)
      • 所有值     < list-max-ziplist-value(默认64个字节)
    • linkedlist:无法满足ziplist的条件时,Redis会使用linkedlist作为列表的内部实现
  • set
    • intset:减少内存的使用
      • 所有元素  ==  整数
      • 元素个数  <   set-max-intset-entries(默认512个)
    • hashtable:无法满足intset的条件时,Redis会使用hashtable作为集合的内部实现
  • zset
    • ziplist:有效减少内存使用
      • 元素个数  <  zset-max-ziplist-entries(默认128个)
      • 元素值     <  zset-max-ziplist-value(默认64个字节)
    • skiplist:无法满足ziplist的条件时,Redis会使用skiplist作为集合的内部实现,读写效率会下降

3.数据类型

3.1、字符串

  • set key value [ex seconds] [px milliseconds] [nx|xx](>= 1.0.0):设置给定 key 的值。如果 key 已经存储其他值,覆写旧值  ·nx:键必须不存在 xx:键必须存在
  • setnx key value (>= 1.0.0):在指定的 key 不存在时,为 key 设置指定的值  成功返回 1 ;失败返回 0
  • setex key timeout value(>= 2.0.0): key 设置值及其过期时间
  • mset key value [key value ...](>= 1.0.1):同时设置一个或多个 key-value 对
  • get key(>= 1.0.0):获取指定 key 的值。如果 key 不存在,返回 nil 
  • mget key [key ...](>= 1.0.0):返回所有(一个或多个)给定 key 的值
原文地址:https://www.cnblogs.com/pascall/p/12336749.html