随笔分类 -  redis设计与实现

摘要:18、发布与订阅 Redis 的发布与订阅功能由PUBLISH、SUBSCRIBE、PSUBSCRIBE等命令组成 频道的订阅与退订 Redis将所有频道的订阅关系都保存在服务器状态的pubsub_channels字典里面,这个字典的键是某个被订阅的频道,而键的值则是一个链表,链表里面记录了所有订阅 阅读全文
posted @ 2022-04-17 16:16 Z9Y1J5 阅读(29) 评论(0) 推荐(0)
摘要:15、复制 进行复制中的主从服务器双方的数据库将保存相同的数据,概念上将这种现象称作“数据库状态一致”,或者简称“一致”。 旧版复制功能的实现 Redis的复制功能分为同步( sync)和命令传播( command propagate)两个操作 同步操作用于将从服务器的数据库状态更新至主服务器当前所 阅读全文
posted @ 2022-04-17 09:56 Z9Y1J5 阅读(29) 评论(0) 推荐(0)
摘要:9、数据库 select实现原理:通过修改RedisClient.db指针,让他指向服务器中的不同数据库,从而实现切换目标数据库的功能 typedef struct redisDb{ dict *dict; //键空间 dict *expires; //过期键,是一个long long类型的整数,保 阅读全文
posted @ 2022-04-14 21:41 Z9Y1J5 阅读(40) 评论(0) 推荐(0)
摘要:2、简单动态字符串 redis中没有使用c语言的字符串,而是用到了简单动态字符串(SDS),set name "hello"表示的意思是:键值对的键是一个字符串对象,底层实现是一个保存字符串name的SDS。 SDS的作用:处理用来保存字符串值之外,还用作缓冲区(AOF模块中的AOF缓冲区、客户端状 阅读全文
posted @ 2022-04-10 10:16 Z9Y1J5 阅读(36) 评论(0) 推荐(0)