首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
wonderstone
掘友等级
程序猿
CPP/JAVA
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
7
文章 7
沸点 0
赞
7
返回
|
搜索文章
最新
热门
Redis源码分析10——RDB持久化
Redis相比memcache而言,最重要的一个特点是其支持持久化。而在redis中持久化分为两种RDB和AOF。 Rdb思想是把当前进程数据生成快照保存到硬盘的过程,保存数据库的键值对。触发RDB持久化过程分为手动触发和自动触发。 可能会想到,既然给了标准,那总得有个对象记录…
Redis源码分析09——定时事件
在前文说道,服务端编程中主要涉及到三类事件:IO事件、定时(一次或多次)事件以及信号事件。在这里将介绍常用的三类处理方式,并分析Redis选择哪种。 调用alarm或者settimer函数,他在指定超时期满时会产生SIGALRM信号。我们为其建立一个信号处理函数,执行相应的处理…
Redis源码分析08——服务端
我们查看server.h中redisServer数据结构可以看出,其功能得有多复杂。因此在这里我会将其拆成一个个小块,有些内容会在后面单独进行详细分析。而且都做了详细的注释,在这里我就不贴出来。大致分为如下几个部分。 根据参数,来判断是否是哨兵模式。 服务端的初始化,主要是函数…
Redis源码分析07——客户端+数据库
第一眼看上去,发现,我擦一个客户端数据结构是真的多啊。这让我杂记啊,没事。不用全部都记住。记几个重要的就行。 connected_clients:代表当前Redis节点的客户端连接数,需要重点监控,一旦超过maxclients,新的客户端连接将被拒绝。 client_longe…
Redis源码分析06——通信协议
Redis基于RESP(Redis Serialization Protocol)协议来完成客户端和服务端通信。RESP本质是一种文本协议,实现简单、易于解析。 细心的大佬可能发现,哎?不对呀。为啥我在客户端不是这样的? Redis的命令使用的是redisCommand数据结构…
Redis源码分析03——高级数据结构下
Redis的hash对象,采用了两种方式来实现的。前面分析过连续内存和非连续内存各自的优缺点,在这里hash表也折中了这两种情况。 由ziplist转dict的操作是不可逆的。 尽可能的使用ziplist来作为hash底层实现。长度尽量控制在1000以内,否则由于存取操作时间复…
集群与负载均衡
:向上扩展,提供性能更好的机器。但是,往往机器的价钱和机器的性能并不是绝对成正比的。 :向外扩展,提供更多的服务器来满足同一个需求,毕竟众人拾柴火焰高,因此引出集群的概念。 将多台主机组织起来形成一个并行或分布式系统,来满足某一特定需求。 集群根据用途不同,可以分为负载均衡集群…
java对象系列
Hotspt 采用了 OOP-Klass 模型。 它是描述 java 对象实例的模型,可分为两部分: OOP (Ordinary Object Pointer)指的是普通对象指针,它包含 MarkWord 和Klass 指针。MarkWord 用于存储当前对象运行时的一些状态数…
Redis源码分析——基础数据结构
redis为了节省内存,针对不同的长度的数据采用不同的数据结构。如下共五种,但SDS_TYPE_5并不使用,因为该类型不会存放数据长度,每次都需要进行分配和释放: 在trim操作时,采用采用的是惰性空间释放即:不会立即使用内存重分配来回收缩短的字节,只是进行移动和标记,并修改数…
Redis源码分析——高级数据结构上
在redisObject数据结构中,采用了C中的位域来节省内存,位域操作非常方便。 需要注意的就是他的移植性,比如某些嵌入式中1个字节不是8位,还有比如你的类型跨两个字节了,这样话可能会导致不可预期的后果,因此适当字节填充是必要的。当然不要被这两个问题吓着,毕竟位域要比位运算好…
下一页
个人成就
文章被点赞
15
文章被阅读
20,155
掘力值
407
关注了
4
关注者
16
收藏集
1
关注标签
1
加入于
2019-09-29