5.3.数据库--Redis
Redis
raindayinrain
经历:工业软件&金融研究院&CAD/CAM
1.工业数控软件开发维护。专注于:c++,Mfc,c#,Wpf,Lua。
2.低延时跨平台基础网络库开发维护,分布式平台开发维护。专注于:linux,c++,内核,网络,分布式。
3.CAD/CAM。专注于:几何建模,几何算法,图形学,Opengl。
展开
-
redis--数据结构与对象
- 字符串 struct sdshdr { int len;// 已用部分尺寸 int free;// 可用部分尺寸 char buf[]; }; 注意点: len若不是0,字符串结尾含有一个'\0',占据1字节空间,但不计入len。 优势: 类似基于字符的动态数组,可动态内存增长与收缩。记录了长度,容量等。保留'\0'来兼容c字符串。 - 链表 typedef struct listNode { struct listNode *prev; struct listNode *next;原创 2021-03-14 17:28:16 · 120 阅读 · 0 评论 -
redis--单机实现
服务器中的数据库 struct redisServer { ... // 一个数组,保存着服务器中的所有数据库 redisDb *db; // 需创建数据库个数 int dbnum; }; 切换数据库 SELECT xx;// 默认为0号数据库 typedef struct redisClient { ... // 记录客户端当前正使用的数据库 redisDb *db; ... }redisClient; 数据库键空间 Redis是一个键值对数据库服务器, 服务器中的每个数据库都由一原创 2021-03-15 23:55:10 · 281 阅读 · 0 评论 -
redis--多机数据库的实现
复制 在redis中,用户可通过执行SLAVEOF或设置slaveof选项, 让一个服务器去复制另一个服务器, 称被复制的服务器为主服务器, 对主服务器进行复制的服务器被称为从服务器 - 旧版复制功能的实现 redis的复制功能分为同步和命令传播. 1.同步操作用于将从服务器的数据库状态更新至主服务器当前所处的数据库状态. 2.在主服务器的数据库状态被修改, 导致主从服务器数据库状态不一致时, 让主从服务器数据库再次一致. - 同步 a.从服务器向主服务器发SYNC b.主服务器接收SYNC, 执行BGS原创 2021-03-21 23:32:12 · 139 阅读 · 4 评论 -
redis--独立功能
发布与订阅 Redis的发布与订阅由PUBLISH, SUBSCRIBE, PSUBSCRIBE等命令组成 订阅某频道后, 有人向频道发消息, 频道的所有订阅者均可收到此消息 模式匹配 频道的订阅与退订 Redis将所有频道的订阅关系都保存在 服务器状态的pubsub_channels字典里. 字典的键是某个被订阅的频道, 键的值是一个链表,链表里记录了所有订阅这个频道的客户端. struct redisServer { ... dict *pubsub_channels; ... }; -原创 2021-03-25 10:12:51 · 147 阅读 · 0 评论