zoukankan      html  css  js  c++  java
  • Redis中sds 模块的 API

        Redis的字符串表示为sds

        sds会为追加操作进行优化:加快追加操作的速度,并降低内存分配的次数,代价是多占用了一些内存,而且这些内存不会住主动释放。

    函数作用算法复杂度
    sdsnewlen 创建一个指定长度的 sds ,接受一个 C 字符串作为初始化值 [Math Processing Error]O(N)
    sdsempty 创建一个只包含空白字符串 "" 的 sds [Math Processing Error]O(1)
    sdsnew 根据给定 C 字符串,创建一个相应的 sds [Math Processing Error]O(N)
    sdsdup 复制给定 sds [Math Processing Error]O(N)
    sdsfree 释放给定 sds [Math Processing Error]O(N)
    sdsupdatelen 更新给定 sds 所对应 sdshdr 结构的 free 和 len [Math Processing Error]O(N)
    sdsclear 清除给定 sds 的内容,将它初始化为 "" [Math Processing Error]O(1)
    sdsMakeRoomFor 对 sds 所对应 sdshdr 结构的 buf 进行扩展 [Math Processing Error]O(N)
    sdsRemoveFreeSpace 在不改动 buf 的情况下,将 buf 内多余的空间释放出去 [Math Processing Error]O(N)
    sdsAllocSize 计算给定 sds 的 buf 所占用的内存总数 [Math Processing Error]O(1)
    sdsIncrLen 对 sds 的 buf 的右端进行扩展(expand)或修剪(trim) [Math Processing Error]O(1)
    sdsgrowzero 将给定 sds 的 buf 扩展至指定长度,无内容的部分用  来填充 [Math Processing Error]O(N)
    sdscatlen 按给定长度对 sds 进行扩展,并将一个 C 字符串追加到 sds 的末尾 [Math Processing Error]O(N)
    sdscat 将一个 C 字符串追加到 sds 末尾 [Math Processing Error]O(N)
    sdscatsds 将一个 sds 追加到另一个 sds 末尾 [Math Processing Error]O(N)
    sdscpylen 将一个 C 字符串的部分内容复制到另一个 sds 中,需要时对 sds 进行扩展 [Math Processing Error]O(N)
    sdscpy 将一个 C 字符串复制到 sds [Math Processing Error]O(N)
  • 相关阅读:
    U盘安装CentOS 7系统
    生产库中遇到mysql的子查询
    mysql 储存类型自增主键区别
    MySQL主从数据库同步延迟问题解决
    MySQL 加锁处理分析
    120篇精华文章打包送,干货慎入!
    mysql批量删除相同前缀的表和修改表名
    用pt-online-schema-change给大表在线加字段的时候导致从库数据丢失的问题
    【MySQL】online ddl 工具之pt-online-schema-change
    互联网公司为啥不使用mysql分区表?
  • 原文地址:https://www.cnblogs.com/zhy128/p/8670961.html
Copyright © 2011-2022 走看看