51
Dev开发社区
首页
文章
问答
工具
搜索
登录
注册
#php模式设计
《Redis设计与实现》之第十三章:Redis客户端
Redis服务器是典型的一对多服务器程序:一个服务器可以和多个客户端建立网络连接,Redis使用单线程单进程的方式来处理命令请求(通过IO多路转接实现),并和多个服务端进行网络通信。每个和服务端进行连接的客户端,服务端都为这些客户端建立了对应的redisClient结构(保存客户端状态),这个结构保存客户端当前的状态信...
代码星球
·
2021-01-30
Redis设计与实现
第十三
Redis
客户端
《Redis设计与实现》之第十二章:事件
Redis服务器是一个事件驱动程序,服务器需要处理两类事件:文件事件:文件事件就是服务器对套接字(socket)操作的抽象,服务器和客户端的通信会产生文件事件时间事件:时间事件就是服务器对定时操作(比如serverCron函数)的抽象,Redis服务器中的一些操作需要在给定的时间点执行一,文件事件 文件事件处...
代码星球
·
2021-01-30
Redis设计与实现
第十二
事件
《Redis设计与实现》之第十一章:AOF持久化
AOF持久化是通过保存Redis服务器所执行的写命令来记录数据库状态的。被写入AOF文件的所有命令都是以Redis的命令请求协议格式(纯文本)保存的。一,AOF持久化的实现1.命令追加当AOF持久化功能处于打开状态时,服务器在执行完一个写命令后,会以协议格式把被执行的写命令追加到服务器状态的aof_buf缓冲区的末尾:...
代码星球
·
2021-01-30
Redis设计与实现
第十
一章
AOF
持久化
《Redis设计与实现》之第十章:RDB持久化
RDB持久化功能所生成的RDB文件是一个经过压缩的二进制文件,通过该文件可以还原生成RDB文件时的数据库状态。(数据库状态:服务器中的非空数据库以及它们的键值对统称为数据库状态)一.RDB文件的创建和载入1.save和bgsave命令可以用来生成RDB文件save命令会阻塞Redis服务器进程,直到RDB文件创建完毕为...
代码星球
·
2021-01-30
Redis设计与实现
第十
RDB
持久化
《Redis设计与实现》之第九章:数据库
一.服务器中的数据库Redis服务器将所有数据库都保存在服务器状态redisServer结构的db数组中,db数组中的每个项都是一个redisDb结构,每个redisDb结构代表一个数据库。structredisServer{ //一个数组,保存着服务器中的所有数据库 &nb...
代码星球
·
2021-01-30
Redis设计与实现
九章
数据库
《Redis设计与实现》之第六章:整数集合
整数集合是Redis用来保存整数值的集合抽象数据结构,它可以保存类型为int16_t,int32_t,int64_t的整数值,并且保证集合中不会出现重复元素1.整数集合的实现typedefstructintset{ //编码方式 uint32_tencoding; //集合中包含的元素数量 uint...
代码星球
·
2021-01-30
Redis设计与实现
第六
整数
集合
《Redis设计与实现》之第四章:字典
一,哈希表节点哈希表节点使用dictEntry结构表示,每个dictEntry结构都保存一个键值对。typedefstructdictEntry{ //键 void*key; //值 union{ void*val; uint64_tu64; int64_ts64; }v; //指向下一个...
代码星球
·
2021-01-30
Redis设计与实现
第四章
字典
《Redis设计与实现》之第八章:对象
之前我们学习了Redis中使用到的数据结构,但是Redis并没有直接使用这些数据结构来实现键值对数据库,而是基于这些数据结构创建了一个对象系统。该系统包含字符串对象,列表对象,哈希对象,集合对象和有序集合对象这五中类型的对象。一.对象的类型和编码Redis使用对象来表示数据库中的键和值,每次在数据库中新创建...
代码星球
·
2021-01-30
Redis设计与实现
第八
对象
《Redis设计与实现》之第三章:链表
当一个列表键包含了数量比较多的元素,又或者列表中包含的元素都是比较长的字符串时,Redis就会使用链表作为列表键的底层实现。比如:integers列表键的底层实现就是一个链表,链表中的每个节点都保存了一个整数值。1.链表节点:typedefstructlistNode{ //前置节点&...
代码星球
·
2021-01-30
Redis设计与实现
第三章
链表
《Redis设计与实现》之第二章:简单字符串SDS
一,什么是SDS?1.引出SDSC字符串:c语言中,用空字符结尾的字符数组表示字符串简单动态字符串(SDS):Redis中,用SDS来表示字符串。在Redis中,包含字符串值的键值对在底层都是由SDS实现的首先,Redis使用C语言写的,但是Redis没有使用C语言传统的字符串表示,它自己构建了简单字符串的抽象类型来表...
代码星球
·
2021-01-30
Redis设计与实现
第二章
简单
字符串
SDS
《Redis设计与实现》之第七章:压缩列表
压缩列表是列表键和哈希键的底层实现之一。压缩列表是为了节约内存而开发的,是由一系列特殊编码的连续内存块组成的顺序型数据结构。【压缩列表是一种数据结构,这种数据结构的功能是将一系列数据与其编码信息存储在一块连续的内存区域,这块内存物理上是连续的,逻辑上被分为多个组成部分,其目的是在一定可控的时间复杂读条件下尽可能的减少不...
代码星球
·
2021-01-30
Redis设计与实现
第七
压缩
列表
《图解Java多线程设计模式》之十一:Two-Phase Termination模式
一,Two-PhaseTermination模式翻译过来就是:分两阶段终止二,示例程序publicclassCountupTreadextendsThread{privatelongcounter=0;privatevolatilebooleanshutdownRequested=false;//中止请求publicv...
代码星球
·
2021-01-30
图解Java多线程设计模式
十一
Two-Phase
Termination
模式
《图解Java多线程设计模式》之十:Future模式
一,Future模式假设有一个方法需要花费很长的时间才能获取运行结果。那么,与其一直等待结果,不如先拿一张提货单。获取提货单并不耗费时间。这里提货单就称为Future角色获取Future角色的线程会在稍后使用Future角色来获取运行结果在处理开始时先返回Future角色,等到其他线程出来终止后,在将结果设置到Futu...
代码星球
·
2021-01-30
图解Java多线程设计模式
之十
Future
模式
《图解Java多线程设计模式》之九:Worker Thread模式
一,WorkerThread模式也叫ThreadPool(线程池模式)二,示例程序情景:一个工作车间有多个工人处理请求,客户可以向车间添加请求。请求类:Request定义了请求的信息和处理该请求的方法车间类:Channel定义了车间里的工人,存放请求的容器。接收请求的方法,处理完请求后取出请求的方法客户类:Client...
代码星球
·
2021-01-30
图解Java多线程设计模式
之九
Worker
Thread
模式
《图解Java多线程设计模式》之八:Thread-Per-Message模式
一,Thread-Per-Message模式翻译过来就是每个消息一个线程。message可以理解为命令,请求。为每一个请求新分配一个线程,由这个线程来执行处理。Thread-Per-Message模式中,请求的委托端和请求的执行端是不同的线程,请求的委托端会告诉请求的执行端线程:这项工作就交给你了二,示例程序Host类...
代码星球
·
2021-01-30
图解Java多线程设计模式
之八
Thread-Per-Message
模式
首页
上一页
...
62
63
64
65
66
...
下一页
尾页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他