redis
学无止境丶
https://github.com/fwdhz998。深度学习的副产品就是广度学习。
展开
-
redis:虚拟机VM中redis与外界相互ping通!惨痛教训
不知从何说起,以前的日子过的顺风顺水了,现在一遇到挫折我就不堪一击。此处分享点心得。背景:交换机A+交换机B扩展,交换机B由路由器改装而来,除了要关闭改交换机DHCP之外,还要将路由器的LAN的IP设为192.168.6.1,其他的IP也行,只要不跟原交换机A的24口冲突!!!原理至今我还不明,不理解IP冲突,不同的网段见此:http://jingyan.baidu.com/art原创 2017-02-23 19:32:13 · 2665 阅读 · 0 评论 -
redis的回收策略
1. 使用Redis有哪些好处?(1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)(2) 支持丰富数据类型,支持string,list,set,sorted set,hash(3) 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行(4) 丰富的特性:可用于缓存,消息,转载 2017-03-18 16:10:54 · 14288 阅读 · 2 评论 -
Redis:集群
1 节点通过握手(类似于TCP三次握手,MEET---PONG---PING)来将其他节点添加到自己所处的集群当中2 集群中的16384个槽可以分别指派给集群中的各个节点,各个节点都会记录哪些槽指派给了自己,而哪些槽又被指派给了其他节点3 节点在接到一个命令请求时,会先检查这个命令请求要处理的键所在的槽是否由自己负责,如果不是的话,节点将向客户端发送一个MOVED错误,MO原创 2017-03-04 20:10:14 · 206 阅读 · 0 评论 -
Redis:哨兵Sentinel
在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器。1 启动并初始化Sentinel1 初始化服务器(运行在特殊模式下的Redis服务器)2 使用Sentinel专用代码 (命令表不同,和普通Redis服务器的命令有所不同)3 创建连向主服务器的命令连接和订阅连接 为什么有两个连接sentinel之间不会创建订阅连接2原创 2017-03-04 10:41:43 · 216 阅读 · 0 评论 -
Redis:服务器端工作流程
一 serverCron函数1 更新服务器时间缓存 精度不高2 更新LRU时钟 计算对象空转时间----过期删除3 更新服务器每秒执行次数4 更新内存峰值记录5 处理SIGTERM信号 关闭自身之前会进行RDB持久化操作6 执行被延迟的持久化操作 没有RDB则AOF二 初始化服务器1 初始化服务器状态结构设置服务器的运行ID,默认端口号原创 2017-03-03 09:35:43 · 616 阅读 · 0 评论 -
redis:整数集合
整数集合(intset)是集合键的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素数量不多时,Redis就会使用整数集合作为集合键的底层实现。contents数组的真正类型取决于encoding属性的值,从小到大。新元素的类型比整数集合现有所有元素的类型都要长时,整数集合需要先进行升级,然后才能将新元素添加到整数集合里面。整数集合是集合键的底层实现之原创 2017-02-28 19:53:36 · 320 阅读 · 0 评论 -
redis:压缩列表
压缩列表(ziplist)是列表键和哈希键的底层实现之一,当一个列表键只包含少量列表项,并且每个列表项要么就是小整数值,要么就是长度比较短的字符串,那么Redis会使用压缩列表来做列表键的底层实现。为了节约内存而开发,可包含任意多个节点,每个节点可以保存一个字节数组或一个整数值。添加新节点到压缩列表,或者从压缩列表中删除节点,可能会引发连锁更新操作,但这种操作出现的几率并不原创 2017-02-28 20:28:57 · 307 阅读 · 0 评论 -
redis:对象系统
1.Redis数据库中的每个键值对的键和值都是一个对象。2.Redis共有字符串、列表、哈希、集合、有序集合五种类型的对象,每种类型的对象至少都有两种或以上的编码方式,不同的编码可以在不同的使用场景上优化对象的使用效率字符串对象的编码可以是int(保存的整数值),raw(长字节),embstr(短字节)列表对象的编码可以是压缩列表(短字节),双端列表(长字节)哈希对原创 2017-03-01 14:52:20 · 265 阅读 · 0 评论 -
Redis:RDB重写和AOF重写
一.RDB1.RDB文件用于保存和还原Rdix服务器所有数据库中的所有键值对数据。2.SAVE命令由服务器进程直接执行保存操作,会阻塞服务器。3.BGSAVE命令由子进程执行保存操作,不会阻塞服务器。4 服务器状态中会保存所有用save选项设置的保存条件,当任意一个保存条件被满足时,服务器会自动执行BGSAVE命令。5 RDB文件是一个经过压缩的二进制文件,由多个部分组成。原创 2017-03-02 09:33:05 · 2307 阅读 · 0 评论 -
redis:跳跃表的实现
1.跳跃表是有序集合的底层实现之一2.Redis的跳跃表由zskiplist和zskiplistNode两个结构组成,其中zskiplist用于保存跳跃表信息(比如表头节点、表尾节点、长度),而zskiplistNode则用于表示跳跃表节点。3.每个跳跃表节点的层高都是1至32之间的随机数。4.在同一个跳跃表中,多个节点可以包含相同的分值,但每个节点的成员对象必原创 2017-02-28 19:25:59 · 892 阅读 · 0 评论 -
redis:C字符串和SDS之间的区别
C字符串和SDS(简单动态字符串)之间的区别C字符串 SDS获取字符串长度的复杂度为O(N) 获取字符串长度的复杂度为O(1) API是不安全的,可能会造成缓冲区溢出原创 2017-02-28 16:04:11 · 523 阅读 · 0 评论 -
redis:字典实现及rehash原理
字典只使用ht[0]哈希表,ht[1]哈希表只会在对ht[0]哈希表进行rehash时使用键---->哈希值---->索引值 Redis使用MurmurHash算法,优点:即使输入的键有规律,算法仍然能给出一个好的随机分布性,速度块。解决键冲突:链地址法。每个哈希表节点都有一个next指针,多个哈希表节点可以用next指针构成一个单向链表。程序总是将新节点添加到原创 2017-02-28 18:30:29 · 2422 阅读 · 0 评论 -
redis,nginx相关面试
1. 介绍项目 2. 项目有没有用过工作流? 3. 没有用工作流,那并行操作怎么办,一个工单,两个人操作 4. session共享,redis怎么存储session,session失效机制 5. session默认过期时间,过长会怎么样 6. nginx负载均衡的算法怎么实现的,懵逼,说没看过 7. r原创 2017-03-27 23:10:03 · 15560 阅读 · 1 评论