随笔分类 -  redis

摘要:http://blog.csdn.net/men_wen/article/details/72896682 Redis 学习笔记(十五)Redis Cluster 集群扩容与收缩 标签: redis集群博客通信源码 2017-06-07 10:02 1614人阅读 评论(0) 收藏 举报 标签: r 阅读全文
posted @ 2017-10-16 22:37 jiangz222 阅读(2180) 评论(0) 推荐(0)
摘要:转:http://blog.csdn.net/men_wen/article/details/72853078 Redis Cluster 介绍与搭建 1. Redis Cluster介绍 Redis Cluster是Redis的分布式解决方案,在Redis 3.0版本正式推出的,有效解决了Redi 阅读全文
posted @ 2017-10-16 22:26 jiangz222 阅读(409) 评论(0) 推荐(0)
摘要:下面是跳跃表的基本原理,REDIS的实现大致相同 跳跃表的一个特点是,插入NODE是通过随机的方式来决定level的,比较奇特 下面是skipList的一个介绍,转载来的,源地址:http://kenby.iteye.com/blog/1187303,为防止源地址丢失,故拷贝一份放在这里,望作者原谅 阅读全文
posted @ 2017-07-04 18:09 jiangz222 阅读(562) 评论(0) 推荐(0)
摘要:1. 一个集群会包含多个节点(一个节点就是一个reid是服务器),CLUST MEET <ip><port>可以添加一个node到集群,命令执行后,两个node之间就会进行握手,握手成功构成集群 2.节点(即redis服务器)启动时,将cluster-enable配置为YES,来决定是否开启服务器的 阅读全文
posted @ 2017-07-03 22:55 jiangz222 阅读(268) 评论(0) 推荐(0)
摘要:1.sentinel的初始化,会制定master的IP和port,然后sentinel会创建向被监视主服务器的命令连接和订阅连接: - 命令连接是用来和主服务器之间进行命令通信的 - 订阅连接,用于订阅主服务器的__sentinel__:hello 频道 sentinelState是sentinel 阅读全文
posted @ 2017-04-27 22:35 jiangz222 阅读(186) 评论(0) 推荐(0)
摘要:另外一篇写的很好很深入的文章:http://www.tuicool.com/articles/fAnYFb ; RDB持久化 http://www.tuicool.com/articles/F3Erii2 复制即主服务器向从服务器的数据同步,REDIS的实现具有参考意义,尤其对于有主从同步需求,数据 阅读全文
posted @ 2017-04-11 22:30 jiangz222 阅读(338) 评论(0) 推荐(0)
摘要:REDIS是单线程处理所有请求,和一般经典实际上推荐的方式相反,那么单线程串行处理,为什么依然能够做到很快呢?知乎上的一个答案如下,其中线程切换和锁不是性能主要影响因素的观点和一般的答案都不同: 作者:杨海坡链接:https://www.zhihu.com/question/19764056/ans 阅读全文
posted @ 2017-04-04 21:40 jiangz222 阅读(6361) 评论(2) 推荐(0)
摘要:内存中的rdb是会存为文件以做到RDB持久化的。RDB文件时一个二进制文件。 一 载入与存储 文件的载入是在server启动时进行的(rdbload()),因为AOF的更新频率比RDB高,所以如果AOF持久化功能开启,服务器会优先从AOF还原DB,只有AOF关闭,才从RDB还原数据库。 文件的存储由 阅读全文
posted @ 2017-03-13 14:15 jiangz222 阅读(234) 评论(0) 推荐(0)
摘要:一 数据库基本实现/命令下发的实现 redis.c里,大家能看到redisCommandTable[] 的实现,列出了支持的所有命令。大部分的入参为redisClient *c,当一条REDIS命令下发,调用流程如下 在createClient里会组装下传的client,其中就会调用selectDb 阅读全文
posted @ 2017-03-01 15:52 jiangz222 阅读(290) 评论(0) 推荐(0)
摘要:一 类型检查和多态 类型检查,即有的命令是只针对特定类型的,如果类型不对,就会报错,此处的类型,是指的键类型,即robj.type.下面为有类型检查的命令: 对于某一种类型,redis下底层的实现(编码类型 robj.encoding)可以是不同的,比如字符串键可以是ziplist或者linklis 阅读全文
posted @ 2017-02-28 23:03 jiangz222 阅读(152) 评论(0) 推荐(0)
摘要:- 从前面redis的基本数据结构来看,可以看出,redis都是在基本结构(string)的基础上,封装了一层统计的结构(SDS),这样让对基本结构的访问能够更快更准确,提高可控制度。 - redis的键值对中,键必然是用字符串对象实现的,所以我们一般说的列表键,指的是字符串键+列表值。 - 但是r 阅读全文
posted @ 2017-02-26 22:01 jiangz222 阅读(459) 评论(0) 推荐(0)
摘要:压缩列表是为了节省内存而设计的,是列表键和哈希键的底层实现之一。 压缩列表的逻辑如下, 阅读全文
posted @ 2017-02-24 10:52 jiangz222 阅读(115) 评论(0) 推荐(0)
摘要:整数集合的实现结构如上,主要用来用作集合对象的实现,其中encoding type包含INT16,INT32,INT64三种选择,所有的整数都在contents[]里按照从小到大有序存储。 整数集合有一个升级的概念,主要目的是为了保证数组里的每个整数的类型一致,比如加入contents[]里有三个整 阅读全文
posted @ 2017-02-21 20:12 jiangz222 阅读(168) 评论(0) 推荐(0)
摘要:三 字典 字典是Hash对象的底层实现,比如用HSET创建一个HASH的对象,底层可能就是用一个字典实现的键值对。 字典的实现主要设计下面三个结构: 他们之间的关系如下图: - dict.type里会注册回调函数,用来实现计算哈希值(hashFunction(),redis使用MurmurHash2 阅读全文
posted @ 2017-02-21 10:58 jiangz222 阅读(153) 评论(0) 推荐(0)
摘要:二 链表 1.链表节点使用ListNode结构,是一个双向的链表,同时,还实现了一个控制所有ListNode的结构list: 由list和listnode组成的基本结构如下,可见 - listNode里的prev和next构成双向列表 - list.head和list.tail使访问头尾node的复 阅读全文
posted @ 2017-02-20 22:34 jiangz222 阅读(182) 评论(0) 推荐(0)
摘要:本读书笔记主要来自于<<redis设计与实现>> -- 黄键宏(huangz) redis主要设计了字符串,链表,字典,跳跃表,整数集合,压缩列表来做为基本的数据结构,实现键值对(key-value)中的值(value),键的数据类型主要是字符串。 1. 简单动态字符串: redis没有使用C的字符 阅读全文
posted @ 2017-02-20 15:40 jiangz222 阅读(214) 评论(0) 推荐(0)