美文网首页基础知识
Redis 基础 - 时间复杂度

Redis 基础 - 时间复杂度

作者: 聆世冷暖 | 来源:发表于2018-09-12 21:57 被阅读0次

    特点:
    Map,相当与一个简单的 Redis、field不能相同,value 可以相同

    序号 API 说明 时间复杂度
    1 incrbyfloat key 3.1 增加 key 对应值3.1 O(1)
    2 getrange key start end 获取字符串指定的下标所有的值 O(1)
    3 setrange key index value 设置指定下标所有的对应的值 O(1)
    4 set key value 设置 key-value O(1)
    5 get key 获取 key-value O(1)
    6 del key 删除 key-value O(1)
    7 setnx setxx 根据 key 是否存在设置 key-value O(1)
    8 mget mset 批量操作 key-value O(n)
    9 hgetall 返回 hash key 对应的所有的 field 个 value O(n)
    10 hvals key 返回 hash key对应所有的 field value O(n)
    11 hkeys key 返回 hash key对应所有的 field key O(n)
    12 hget key field 获取 hash key对应的 field 的 value O(1)
    13 hset key field value 设置 hash key 对应的 field value O(1)
    14 hdel key field 删除 hash key对应的 field 的 value O(1)
    15 hexists key field 判断 hash key 是否有 field O(1)
    16 hlen key 获取hash key field 数量 O(1)
    17 hmget key field1 field2 ... fieldn 批量获取一批数据 O(n)
    18 hmset key f1 v1 f2 v2... fn vn 批量设置一批数据 O(n)
    19 hgetall key 返回 hash key 对应的所有的 field 和 value O(n)
    20 hsetnx key field value 设置 hash key 对应的 field 的 value(如 field 已经存在,则失败) O(1)
    21 hincrby key field value intCounter 设置 hash key 对应的 field 的 value intCounter O(1)
    21 hincrbyfloat key field value floatCounter 设置 hash key 对应的 field 的 value floatCounter O(1)

    特点:
    有序,可以重复,左右两边插入弹出

    序号 API 说明 时间复杂度
    1 lpop 从列表左侧弹出一个 item O(1)
    2 rpop 从列表右侧弹出一个 item O(1)
    3 lrem key count value 根据 count 值,从列表中删除所有的 value 相等的项 :(1)count > 0,从左到右删除最多 count 个value相等的项;(2)count < 0,从右到左删除最多 Math.abs(count) 个 value 相等的项;(2)count = 0,删除所有的 value 相等的项。 O(n)
    4 ltrim key start end 按照索引范围修剪列表 O(n)
    5 lrange key start end(包含 end) 获取列表指定索引范围所有的 item O(n)
    6 lindex key index 获取指定列表索引 item O(n)
    7 llen key 获取列表长度 O(1)
    8 lset key index newValue 设置列表指定位置指定值 O(n)
    9 blpop key timeout lpop阻塞版本,timeout是阻塞时长,timeout=0为永远不过期 O(1)
    10 brpop key timeout rpop的阻塞版本,timeout是阻塞超时时间timeout=0为永远不过期 O(1)
    11 rpush key v1 v2 ... vn 从列表右端插入值(1~n个) O(1~n)
    12 linsert key before/after value newValue 在 list 指定的值前/后插入 newValue O(n)

    特点:
    无序、无重复、集合间操作

    序号 API 说明 时间复杂度
    01 sadd key ele 向集合中 key 添加ele(如果已经存在,添加失败) O(1)
    02 srem key ele 将集合 key 中 ele 移除掉 O(1)
    03 sadd key score ele 添加 score 和 ele (可以是多对) O(logN)
    04 score key ele 返回元素的分数 O(1)
    05 zincrby key increScore ele 增加或者减少元素的分数 O(1)
    06 zcard key 返回元素的总个数 O(1)
    07 zrange key start end 返回指定索引范围内升序元素(分值) O( log(n)+ m)
    08 zrangebyscore key minScore maxScore 返回指定分数范围内升序元素(分值) O( log(n)+ m)
    09 zcount key minScore maxScore 返回指定分数范围内元素个数 O( log(n)+ m)
    10 zremrangebyrank key start end 删除指定排名内的升序元素 O( log(n)+ m)
    12 zremrangebyscore key minScore maxScore 删除指定 分数内的升序元素 O( log(n)+ m)

    pipline
    1.Redis 的命令时间是微秒级别的;
    2.pipline 每次条数需要控制;
    3.M操作与 pipline 操作比较类似,pipline 每次只能作用于一个节点;

    命令 N 个命令操作 1次 pipline(n 个命令)
    时间 n次网络+n次命令 1次网络+n次命令
    数量 1命令 n次命令

    相关文章

      网友评论

        本文标题:Redis 基础 - 时间复杂度

        本文链接:https://www.haomeiwen.com/subject/uuobgftx.html