Redis
文章平均质量分 88
青玉白露
公众号,【二进制的耳语】,欢迎关注~
字节跳动工程师|AIGC领域爱好者|博客专家
单机游戏赏玩大家、GBA、Java怀旧游戏大神
展开
-
【技术分享】求取列表需求的redis缓存方案
这样一来,当请求产品排行榜时,你可以非常快速地从zset中获取排名,再从散列中取出每个产品的详细信息,实现快速响应。只使用Redis操作,无需频繁查询SQL数据库,提高了性能并减少了数据库的压力。在实施方案时,请确保对Redis的操作进行性能测试,以验证它是否满足你的需求,并根据实际使用情况调整TTL和缓存策略。原创 2024-03-07 08:04:22 · 304 阅读 · 0 评论 -
Redis源码、面试指南(2)内存编码数据结构
内存编码数据结构的实现 这一部分主要介绍Redis特制的内存编码数据结构,建议结合图像来理解。 整数集合 源码:intset.h和intset.c。 整数集合(intset)是集合键的底层实现之一: 当一个集合只包含整数值元素,并且这个集合的元素数量(见后)不多时,Redis就会使用整数集合作为集合键的底层实现。 结构定义 typedef struct intset { // 编码方式 uint32_t encoding; // 集合包含的元素数量 uint32_t le原创 2021-04-13 13:54:57 · 124 阅读 · 0 评论 -
Redis源码、面试指南(5)多机数据库、复制、哨兵、集群
文章目录**五、多机数据库****复制功能****新旧版本的复制对比****复制的全过程****哨兵Sentinel****介绍****初始化Sentinel****获取主从服务器信息****跟主从服务器交互****检查下线****故障转移****集群****指派哈希槽****集群中如何执行命令****重新分片****故障转移** 五、多机数据库 这个部分主要介绍跟多级数据库有关的复制、集群、sentinel。 复制功能 源码参见:replication.c 在Redis中可以使用SLAVEOF或者设置sl原创 2021-04-13 13:54:15 · 96 阅读 · 0 评论 -
Redis源码、面试指南(4)单机数据库、持久化、通知与订阅
四、数据库实现 在Redis中,服务器中所有的数据库都保存在redis.h/redisServer结构中的db数组中: struct redisServer { // …… // 保存服务器中所有的数据库 redisDb *db; //…… // 决定服务器初始化时创建的数据库数量 // 默认16 int dbnum; } 默认配置下的服务器启动之后的状态如下: 对于redis的客户端而言,其结构中的db属性指向了当前正在操作的目原创 2021-04-13 13:52:40 · 197 阅读 · 0 评论 -
Redis源码、面试指南(3)数据对象类型编码
三、数据类型的实现 在前面,我们陆续介绍了 Redis 用到的所有主要数据结构。 Redis 并没有直接使用这些数据结构来实现键值对数据库,而是基于这些数据结构创建了一个对象系统,这个系统包含字符串对象、列表对象、哈希对象、集合对象和有序集合对象这五种类型的对象。 对象类型及编码 源码文件:object.c 每次当我们在Redis的数据库中新创建一个键值对时,我们至少会创建两个对象,一个对象用作键值对的键(键对象),另一个对象用作键值对的值(值对象)。 Redis中的每个对象都由一个redisObject结原创 2021-04-13 13:52:01 · 141 阅读 · 0 评论 -
Redis源码(1)基本数据结构
Redis源码阅读笔记 文章目录**Redis源码阅读笔记****前言****基本数据结构****动态字符串SDS****结构定义****对比C字符串****接口API****链表List****结构定义****接口API****字典Dict****结构定义****接口API****迭代器****跳跃表skiplist****结构定义****查找、删除、添加节点****接口API****补充:有序集合****HyperLogLog****算法细节****密集存储****稀疏存储****计数缓存****API原创 2021-04-10 16:09:05 · 118 阅读 · 0 评论