
redis
文章平均质量分 58
yinhua405
努力工作
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Redis_哨兵
sentineltypedef struct sentinelRedisInstance { // 标识值,记录了实例的类型,以及该实例的当前状态 int flags; /* See SRI_... defines */ // 实例的名字 // 主服务器的名字由用户在配置文件中设置 // 从服务器以及 Sentinel 的名字由 Sentinel 自动设置 // 格式为 ip:port ,例如 "127.0.0.1:26379" cha...原创 2021-04-27 13:54:21 · 286 阅读 · 0 评论 -
Redis_复制
复制 /* Replication (master) */ int slaveseldb; /* Last SELECTed DB in replication output */ // 全局复制偏移量(一个累计值) long long master_repl_offset; /* Global replication offset */ // 主服务器发送 PING 的频率 int repl_ping_slave_peri...原创 2021-04-21 15:26:11 · 116 阅读 · 0 评论 -
Redis_服务器
服务器/** Redis 命令*/struct redisCommand {// 命令名字char *name;// 实现函数redisCommandProc *proc;// 参数个数int arity;// 字符串表示的 FLAGchar *sflags; /* Flags as string representation, one char per flag. */// 实际 FLAGint flags; /* The actual ..原创 2021-04-20 09:57:15 · 160 阅读 · 0 评论 -
Redis_客户端
客户端/* With multiplexing we need to take per-client state.* Clients are taken in a liked list.** 因为 I/O 复用的缘故,需要为每个客户端维持一个状态。** 多个客户端状态被服务器用链表连接起来。*/typedef struct redisClient {// 套接字描述符int fd;// 当前正在使用的数据库redisDb *db;// 当...原创 2021-04-19 14:11:21 · 104 阅读 · 0 评论 -
Redis_事件
事件文件事件客户端读,服务端产生写事件时间事件/** 文件事件状态*/// 未设置#define AE_NONE 0// 可读#define AE_READABLE 1// 可写#define AE_WRITABLE 2/** 时间处理器的执行 flags*/// 文件事件#define AE_FILE_EVENTS 1// 时间事件#define AE_TIME_EVENTS 2// 所有事件#define AE_ALL_EVENTS (AE_FILE...原创 2021-04-19 13:16:15 · 71 阅读 · 0 评论 -
Redis_aof
aof配置文件appendonly yesappendfsync always#appendfsync everysec# appendfsync no/** 将命令追加到 AOF 文件中,* 如果 AOF 重写正在进行,那么也将命令追加到 AOF 重写缓存中。*/void feedAppendOnlyFile(struct redisCommand *cmd, int dictid, robj **argv, int argc) {sds buf =..原创 2021-04-16 16:14:51 · 455 阅读 · 0 评论 -
Redis_RDB
RDB配置文件save 900 1save 300 10save 60 10000结构// 服务器的保存条件(BGSAVE 自动执行的条件)struct saveparam { // 多少秒之内 time_t seconds; // 发生多少次修改 int changes;};int rdbLoad(char *filename, rdbSaveInfo *rsi) { FILE *fp; rio rdb; in...原创 2021-04-15 19:36:47 · 665 阅读 · 0 评论 -
Redis_数据库
数据库/* Redis database representation. There are multiple databases identified* by integers from 0 (the default database) up to the max configured* database. The database number is the 'id' field in the structure. */typedef struct redisDb {//...原创 2021-04-15 14:55:50 · 97 阅读 · 0 评论 -
Redis_对象
对象typedef struct redisObject{ // 类型 unsigned type : 4; // 编码 unsigned encoding : 4; // 对象最后一次被访问的时间 unsigned lru : REDIS_LRU_BITS; /* lru time (relative to server.lruclock) */ // 引用计数 int refcount; // 指向实际值的指针 void...原创 2021-04-14 19:23:20 · 88 阅读 · 0 评论 -
Redis_压缩列表
压缩列表/** 保存 ziplist 节点信息的结构*/typedef struct zlentry {// prevrawlen :前置节点的长度// prevrawlensize :编码 prevrawlen 所需的字节大小unsigned int prevrawlensize, prevrawlen;// len :当前节点值的长度// lensize :编码 len 所需的字节大小unsigned int lensize, len;...原创 2021-04-14 13:56:39 · 99 阅读 · 0 评论 -
Redis_整数
整数typedef struct intset { // 编码方式 uint32_t encoding; // 集合包含的元素数量 uint32_t length; // 保存元素的数组 int8_t contents[];} intset;原创 2021-04-14 11:07:57 · 125 阅读 · 0 评论 -
Redis_跳跃表
跳跃表表节点/* ZSETs use a specialized version of Skiplists *//** 跳跃表节点*/typedef struct zskiplistNode { // 成员对象 robj *obj; // 分值 double score; // 后退指针 struct zskiplistNode *backward; // 层 struct zskiplistLevel { ...原创 2021-04-13 19:45:46 · 97 阅读 · 0 评论 -
Redis_字典
字典一个字典带有两个哈希表,一个平时用,一个reshash用哈希表哈希表节点rehash渐进式地完成,/** 哈希表节点*/typedef struct dictEntry { // 键 void *key; // 值 union { void *val; uint64_t u64; int64_t s64; } v; // 指向下个哈希表节点,形成链表 struct di...原创 2021-04-13 17:03:41 · 82 阅读 · 0 评论 -
Redis_链表
链表/** 双端链表节点*/typedef struct listNode { // 前置节点 struct listNode *prev; // 后置节点 struct listNode *next; // 节点的值 void *value;} listNode;/** 双端链表结构*/typedef struct list { // 表头节点 listNode *head; // 表尾节点 listN...原创 2021-04-13 11:13:33 · 81 阅读 · 0 评论 -
Redis_字符串
sds simple dynamice string1.常数复杂度获取字符串长度2.杜绝缓冲区溢出3.减少修改字符串时带来的内存重分配次数空间预分配,惰性空间释放4.二进制安全5.兼容部分C字符串函数/** 根据给定的初始化字符串 init 和字符串长度 initlen* 创建一个新的 sds** 参数* init :初始化字符串指针* initlen :初始化字符串的长度** 返回值* sds :创建成功返回 sdshdr 相对应的 sds* 创建失...原创 2021-04-13 10:51:10 · 216 阅读 · 1 评论