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)
  • 相关阅读:
    haproxy 2.5 发布
    cube.js sql 支持简单说明
    基于graalvm 开发一个cube.js jdbc driver 的思路
    apache kyuubi Frontend 支持mysql 协议
    oceanbase 资源池删除说明
    基于obd 的oceanbase 扩容说明
    jfilter一个方便的spring rest 响应过滤扩展
    cube.js schema 定义多datasource 说明
    typescript 编写自定义定义文件
    meow 辅助开发cli 应用的工具
  • 原文地址:https://www.cnblogs.com/zhy128/p/8670961.html
Copyright © 2011-2022 走看看