51
Dev开发社区
首页
文章
问答
工具
搜索
登录
注册
#设计名片的软件
《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
模式
《图解Java多线程设计模式》之七:Read-Write Lock模式
一,Read-WriteLock模式在Read-WriteLock模式中,读取操作和写入操作是分开考虑的。在执行读取操作之前,线程必须获取用于读取的锁。在执行写入操作之前,线程必须获取用于写入的锁。所以:当一个线程在读取时,其他线程可以读取,但是不可以写入。当一个线程正在写入时,其他线程不可以读取或写入。因为执行互斥处...
代码星球
·
2021-01-30
图解Java多线程设计模式
之七
Read-Write
Lock
模式
《图解Java多线程设计模式》之六:Producer-Consumer模式
一,Producer-Consumer模式Producer:生产者的意思,指的是生成数据的线程。Consumer:消费者的意思,指的是使用数据的线程当生产者和消费者以不同的线程运行时,两者之间的处理速度差异就会引起问题。比如,消费者想获取数据,可是数据还没有生成。或者生产者想要交付数据,而消费者的状态还无法接收数据。P...
代码星球
·
2021-01-30
图解Java多线程设计模式
之六
Producer-Consumer
模式
《图解Java多线程设计模式》之五:Balking 模式
一,什么是Balking模式如果现在不合适执行这个操作,或者没必要执行这个操作,就停止处理,直接返回。在Balking模式中,如果守护条件不成立,就立即中断处理。二,例子:定期将当前数据内容写入文件中,比如文本工具的自动保存功能,定期的将数据保存到文件中。当数据内容被写入时,会完全覆盖上次写入的内容,只有最新的内容才会...
代码星球
·
2021-01-30
图解Java多线程设计模式
之五
Balking
模式
首页
上一页
...
28
29
30
31
32
...
下一页
尾页
按字母分类:
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
其他