2022年11月28日

redisOject 和 底层数据结构对应 学习笔记

摘要: 笔记摘抄自 https://pdai.tech/md/db/nosql-redis/db-redis-data-type-enc.html redisObject 查看编码命令 set k1 1 object encoding k1 set k2 hello object encoding k2 字 阅读全文

posted @ 2022-11-28 11:54 每日问答 阅读(31) 评论(0) 推荐(0)

2022年11月22日

IntSet-整数集

摘要: IntSet 是集合类型的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素数量不多时,redis 就会使用 IntSet作为集合键的底层实现 InSet 结构 typedef struct intset { uint32_t encoding; uint32_t length; int8 阅读全文

posted @ 2022-11-22 11:28 每日问答 阅读(43) 评论(0) 推荐(0)

Dict - 字典/hash

摘要: 哈希表结构定义 typedef struct dictht{ //哈希表数组 dictEntry **table; //哈希表大小 unsigned long size; //哈希表大小掩码,用于计算索引值 //总是等于 size-1 unsigned long sizemask; //该哈希表已有 阅读全文

posted @ 2022-11-22 11:18 每日问答 阅读(49) 评论(0) 推荐(0)

2022年11月21日

ZipList - 压缩列表

摘要: ziplist 是为了提高存储效率而设计的一种特殊编码的双向链表。它可以存储字符串或者整数,存储整数时是采用整数的二进制而不是字符串形式存储。它能在O(1)的时间复杂度下完成list两端的push和pop操作。但因为每次操作都需要重新分配内存,所以实际复杂度和ziplist的内存使用量相关。 zip 阅读全文

posted @ 2022-11-21 22:29 每日问答 阅读(122) 评论(0) 推荐(0)

SDS

摘要: redis 是用C语言写的,但是对于redis 的字符串,却不是C语言中的字符串,它自己构建了一种名为简单动态字符串的抽象对象(simple dynamic string, SDS) SDS 属性 len 保存了SDS字符串的长度 buf[] 数组用来保存字符串的每个元素 alloc 分别unit8 阅读全文

posted @ 2022-11-21 21:36 每日问答 阅读(87) 评论(0) 推荐(0)

redisObject 对象

摘要: 原文链接 redisObject 在redis中,不同的数据类型有不同的操作命令。如: LPUSH 和 LLEN 只能用于列表键, 而 SADD 和 SRANDMEMBER 只能用于集合键。 因此redis 必须让每个键都带有类型信息,是的程序可以检查键的类型,并为它选择合适的处理方式, 操作数据类 阅读全文

posted @ 2022-11-21 21:19 每日问答 阅读(26) 评论(0) 推荐(0)

2022年11月19日

python 协程学习笔记

摘要: yield 生成器 from inspect import getgeneratorstate def gen1(): x = yield 2 print(x) y = yield x return y g = gen1() print(getgeneratorstate(g)) # GEN_CRE 阅读全文

posted @ 2022-11-19 14:39 每日问答 阅读(27) 评论(0) 推荐(0)

2022年11月17日

表连接学习笔记

摘要: 类型 内连接 外连接 左外连接 右外连接 左外连接语法 select * from t1 left [outer] join t2 on 连接条件 [where 普通过滤条件] 右外连接语法 select * from t1 right [outer] join t2 on 连接条件 [where 阅读全文

posted @ 2022-11-17 11:01 每日问答 阅读(25) 评论(0) 推荐(0)

2022年11月16日

索引 学习笔记

摘要: 索引类型 聚簇索引 使用记录主键值大小进行排序,B+树叶子节点存储了完整的用户记录, 一个表只能有一个,不允许为NULL,不能重复。 二级索引 以非主键列的大小为排序规则建立的B+树,并且需要执行回表操作才能定位到完成的用户记录 联合索引 以多个列的大小作为排序规则建立的B+树 索引注意事项 在使用 阅读全文

posted @ 2022-11-16 16:40 每日问答 阅读(26) 评论(0) 推荐(0)

2021年10月10日

go语言基础-包、模块

摘要: go程序由多个包组成,包是同一目录下编译在一起的源文件的集合。在一个源文件中定义的函数、类型、变量和常量对同一包中的所有其他源文件可见。 一个存储库包含一个或多个模块。模块是一起发布的相关 Go 包的集合。 Go 存储库通常只包含一个模块,位于存储库的根目录。一个名为 go.mod 的文件声明了模块 阅读全文

posted @ 2021-10-10 23:09 每日问答 阅读(341) 评论(0) 推荐(0)

导航