redis开发与运维(第2章 API的理解和使用)

2.1、预备

  1. keys * (查看所有键)
    在这里插入图片描述
  2. dbsize (键总数)
    在这里插入图片描述

dbsize在计算键总数时不会遍历所有键,而是直接获取redis内置的键总数变量,时间复杂度为O(1),而keys会遍历所有键,时间复杂度为O(n)

  • exists key [key...] (检查键是否存在)
    在这里插入图片描述
    如果键存在则返回1,不存在返回0
  • del key [key...] (删除键)
    在这里插入图片描述
    返回结果为成功删除的个数,如果删除一个不存在的键,就会返回0
  • expire key seconds (设置键过期时间)
  • ttl key (返回键的剩余过期时间,3种返回值)
    大于等于0的整数:键剩余的过期时间
    -1:键没设置过期时间
    -2:键不存在
    在这里插入图片描述
  • type key (键的数据结构类型)
    在这里插入图片描述
    type实际返回的就是当前键的数据结构类型,它们分别是string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合),这些只是redis对外的数据结构,每种数据结构都有自己底层的内部编码实现,而且还是多种。
  • object encoding (查询内部编码)
    在这里插入图片描述

2.2字符串

1.常用命令

  • set key value [ex seconds] [px milliseconds] [nx|xx] (设置值)
    在这里插入图片描述
    ex seconds:为键设置秒级过期时间
    px milliseconds:为键设置毫秒级过期时间
    nx: 键必须不存在,才可以设置成功,用于添加
    xx: 键必须存在,才可以设置成功,用于更新(默认)
    setex key seconds value 与ex作用一样
    setnx key value 与nx作用一样
    在这里插入图片描述

  • get key (获取值,不存在返回nil)
    在这里插入图片描述

  • mset key value [key value ...] (批量设置值)

  • mget key [key ...] (批量获取值)
    在这里插入图片描述

  • incr key (用于对值做自增操作)
    值不是整数,返回错误
    值是整数,返回自增后的结果
    键不存在,按照值为0自增,返回结果为1
    在这里插入图片描述

  • decr (自减)

  • incrby key increment(自增指定数字)

  • decrby key decrement(自减指定数字)

  • incrbyfloat key increment(自增浮点数)

2.不常用命令

  • append key value (追加值,返回字符串长度)
  • strlen key (字符串长度)
    在这里插入图片描述
  • getset key value(设置并返回原值)
    在这里插入图片描述
  • setrange key offeset value(设置指定位置的字符)
    在这里插入图片描述
  • getrange key start end(获取部分字符串)
    在这里插入图片描述

3.内部编码
字符串的内部编码有3种:

  • int : 8个字节的长整型
  • embstr: 小于等于39个字节的字符串
  • raw:大于39个字节的字符串

2.3哈希

命令:

  1. hset key field value (设置值)
  2. hget key field (获取值,键或者field不存在,返回nil)
  3. hdel key field [field...] (删除field)
  4. hlen key(计算field个数)
    在这里插入图片描述
  5. hmset key field value [field value... ] (批量设置field-value)
  6. hmget key field [field ...] (批量获取field-value)
    在这里插入图片描述
  7. hexists key field(判断field是否存在)
  8. hkeys key (获取所有field)
  9. hvals key (获取所有value)
  10. hgetall key (获取所有的 field-value)
    在这里插入图片描述
  11. hstrlen key field (计算value的字符串长度)
    在这里插入图片描述

内部编码:

  1. ziplist(压缩列表):当哈希元素个数小于hash-max-ziplist-entries配置(默认512个)、同时所有值小于hash-max-ziplist-value配置(默认64字节)时,采用ziplist作为哈希内部实现,节省内存。
  2. hashtable(哈希表)
    在这里插入图片描述

2.4列表

列表是用来存储多个有序的字符串,列表中的每个字符串称为元素,一个列表最多存储2^32 -1个元素。特点:1、列表是有序的 2、列表中的元素可以是重复的

  1. 命令
操作类型操作
添加rpush lpush linsert
lrange lindex llen
删除lpop rpop lrem ltrim
修改lset
阻塞操作blpop brpop
  • rpush key value [value...] (从右边插入元素)

  • lpush key value [value...] (从左边插入元素)

  • linsert key before|after pivot value (向某个元素前或后插入元素)

  • lrange key start end (获取指定范围内的元素列表,索引下标从左到右0到N-1,从右到左-1到-N,end包含自身)

  • lindex key index (获取列表指定索引下标的元素)

  • llen key (获取列表长度)

  • lpop key (从列表左侧弹出元素)

  • rpop key (从列表右侧弹出元素)

  • lrem key count value (删除指定元素)

    • count>0,从左到右,删除最多count个元素
    • count<0,从右到左,删除最多count绝对值个元素
    • count=0,删除所有
  • ltrim key start end (按照索引范围修剪列表,保留下标start-end的元素)

  • lset key index newvalue (修改指定索引下标的元素)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • blpop key [key ...] timeout

  • brpop key [key ...] timeout (阻塞式弹出)
    key[key]:多个列表的键
    timeout:阻塞时间(单位: 秒)

    • 列表为空:如果timeout = 3,那么客户端要等待3秒后返回,如果timeout=0,那么一直阻塞
      在这里插入图片描述
    • 列表不为空:立即返回
      在这里插入图片描述
      在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值