随笔分类 - Redis
摘要:codis 和 cluster 对比图: codis工作图: cluster工作图:(去中心化)
阅读全文
摘要:集群分片:槽 1、节点记录自己的槽范围,并将自己的槽范围传播给其它的集群节点,同时接收其它节点传播过来的槽信息。 2、节点之间两两相连。 工作方式: 1、当一个请求到达某个节点时,节点先进行hash,再根据hash的值进行判断属于哪个槽。如果是自己的槽,自己处理。如果不是则根据保存的其它节点槽信息,
阅读全文
摘要:Sentinel 哨兵 —— 高可用 (high availability) 监视集群,主服务器的选举。 主服务器的下线判断: 1、在down-after-milliseconds选项设置的时间内,连续向Sentinel返回无效回复。 2、询问其它监视主服务器的Sentinel也得到主服务器下线的回
阅读全文
摘要:主服务器:master 从服务器:slave 命令:SLAVEOF ip port (在slave中执行该命令,则将ip对应的服务器设置为主服务器。) 主从同步是实现步骤:(用于新的同步) 1、从服务器向主服务器发送SYNC命令。 2、主服务器收到命令后,执行BGSAVE命令,生产RDB文件,并使用
阅读全文
摘要:Redis的对象结构: typedef struct redisObject { unsigned type:4; //类型 unsigned encoding:4; //编码 int refcount; //引用计数 unsigned lru:22; //淘汰策略,最近最少使用 void *ptr
阅读全文
摘要:相当于Redis 中的 sorted set 跳跃表节点结构: typedef struct zskiplistNode { struct zskiplistNode *backward; //后退指针 double score; //分值 robj *obj; //值 struct zskipli
阅读全文
摘要:Redis Map 存储K-V键值对。(跟Java的Map类比) 哈希表结构: typedef struct dictht { dictEntry **table; //哈希表数组 unsigned long size; //哈希表大小 unsigned long sizemask; //哈希表掩码
阅读全文
摘要:相当于Redis 中的 list Redis 的链表结构 typedef struct list { listNode * head; //表头节点 listNode * tail; //表尾节点 unsigned long len; //链表包含的节点数量 ... //其它结构 } list; 链
阅读全文
摘要:Redis 的简单动态字符串 (simple dynamic string,SDS) SDS的结构: struct sdshdr { int len; //保存的字符串长度。 int free; //buf数组中,未使用字节的数量。 char buf[]; //字节数组,用于保存字符串。 } 区别于
阅读全文
摘要:Redis支持的类型: String,List,Map,Set,Sorted set Redis的持久化: 1、Redis DataBase (RDB): RDB是在某个时间点将数据写入一个临时文件,持久化结束后,用这个临时文件替换上次持久化的文件,达到数据恢复。 优点:使用单独子进程来进行持久化,
阅读全文
摘要:1)、memcache数据存放在内存中,这意味着:缓存数据的大小受机器内存的大小限制、重启后缓存清零。 2)、内存分配方式:固定内存分配。 内存分配以page为单位,当需要开辟新的内存空间时,先获得slab,再分配page,最后分chunk。然后将chunk绑定到对应的slab_class。 3)、
阅读全文

浙公网安备 33010602011771号