- 博客(4)
- 收藏
- 关注
原创 redis其他功能
一:发布订阅发布订阅功能主要使用PUBLISH,SUBSCRIBE,PSUBSCRIBE等命令实现。主要流程为,每个客户端通过SUBSCRIBE “news”命令订阅相关的频道,或者使用PSUBSCRIBE来订阅模式,某一个客户端执行PUBLISH时,订阅的相关频道可以接收到这个消息,主要由订阅频道和订阅模式。服务器状态在pubsub_channels字典保存了所有频道的订阅关系,SUBSCRIBE命令负责将客户端和被订阅频道关联到这个字典里面,而UNSUBSCRIBE命令则负责解除客户端
2021-11-29 23:38:46 687
原创 redis多机数据库
一:复制主要命令是SLAVEOF命令,在从服务器上面使用 SLAVE IP PORT,则可以配置主从关系旧版复制功能,分为同步(sync)和命令传播(command propagate)。同步操作为:(1)从服务器向主服务器发送SYNC命令,(2)主服务器收到SYNC执行BGSAVE命令,在后台生成RDB文件,并使用缓冲区记录现在执行的写命令,(3)主服务器BGSAVE执行完成之后,将RDB文件发送给从服务器,从服务器接收到之后,载入RDB文件,(4)主服务器将记录在缓冲区里面的所有写命令发
2021-11-29 23:38:12 865
原创 redis单机数据库实现
一:数据库1.服务器中的数据库struct redisServer{ //.. //数组,保存服务器中所有的数据库 redisDb *db; //服务器中数据库的数量 int dbnum;}typedef struct redisClient{ //... //记录客户端当前正在使用的数据库 redisDb *db;}redis中的dbnum属性服务器中的数据库数量,默认有16个数据库。每个客户端都有自己的数据库,默认
2021-10-19 23:35:11 122
原创 redis基本数据结构与对象
一:简单动态字符串(SDS)1.结构struct sdshdr{ //当前字符串的长度 int len; //可以分配的空间 int free; //字符数组 char buf[];}2.应用场景用于保存redis中键,当值值list,set,string等等时,其里面包含的值也为SDS用于缓冲区,AOF缓冲区和客户端输入缓存区3.特性及优点可以使用常数的时间复杂度获取字符串长度避免缓冲区溢出,sdscat(拼接字符串的API),可以在拼接字符串的时候检查空间是否足够
2021-10-08 23:39:50 98
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人