精通Redis
文章平均质量分 97
简单的土拨鼠
欢迎大家关注,微信公众号:简单的土拨鼠,
展开
-
揭秘Redis列表底层实现
介绍了 Redis 数据结构中的列表对象,包括其编码方式、ziplist 和 linkedlist 两种实现方式,以及相关的 API 源码。原创 2024-08-16 13:49:57 · 464 阅读 · 0 评论 -
揭秘Redis字符串底层实现
介绍了 Redis 中字符串对象的底层实现。文章首先介绍了字符串对象的三种编码方式,包括 int 编码、raw 编码和 embstr 编码。然后详细介绍了 embstr 编码的字符串对象在保存短字符串值时的优势,包括减少内存分配次数和提高缓存效率。接着介绍了 Redis 中使用的简单动态字符串(SDS)的定义和特点,以及与 C 字符串的区别。SDS 相比 C 字符串具有常数复杂度获取字符串长度、杜绝缓冲区溢出、减少修改字符串时带来的内存重分配次数等优势。文章还介绍了 SDS 的空间预分配和惰性空间释放机制,原创 2024-08-16 13:47:47 · 563 阅读 · 0 评论 -
揭秘Redis对象底层实现
Redis 会在初始化服务器时, 创建一万个字符串对象, 这些对象包含了从 0 到 9999 的所有整数值, 当服务器需要用到值为 0 到 9999 的字符串对象时, 服务器就会使用这些共享对象, 而不是新创建对象。Redis 使用对象来表示数据库中的键和值, 每次当我们在 Redis 的数据库中新创建一个键值对时, 我们至少会创建两个对象, 一个对象用作键值对的键(键对象), 另一个对象用作键值对的值(值对象)。原创 2024-08-15 20:36:24 · 486 阅读 · 0 评论