#Redis设计与实现

《Redis设计与实现》之第十四章:Redis服务器

Redis服务器复制和多个客户端建立网络连接,处理客户端发送的命令请求,在数据库中保存客户端执行命令所产生的数据。一,命令请求的执行过程客户端向服务器发送命令请求setkeyvalue服务器接收并处理客户端发来的命令请求setkeyvalue。在数据库中进行设置操作,并产生命令回复OK服务器把命令回复OK发送给客户端客...

《Redis设计与实现》之第十三章:Redis客户端

Redis服务器是典型的一对多服务器程序:一个服务器可以和多个客户端建立网络连接,Redis使用单线程单进程的方式来处理命令请求(通过IO多路转接实现),并和多个服务端进行网络通信。每个和服务端进行连接的客户端,服务端都为这些客户端建立了对应的redisClient结构(保存客户端状态),这个结构保存客户端当前的状态信...

《Redis设计与实现》之第十二章:事件

Redis服务器是一个事件驱动程序,服务器需要处理两类事件:文件事件:文件事件就是服务器对套接字(socket)操作的抽象,服务器和客户端的通信会产生文件事件时间事件:时间事件就是服务器对定时操作(比如serverCron函数)的抽象,Redis服务器中的一些操作需要在给定的时间点执行一,文件事件 文件事件处...

《Redis设计与实现》之第十一章:AOF持久化

AOF持久化是通过保存Redis服务器所执行的写命令来记录数据库状态的。被写入AOF文件的所有命令都是以Redis的命令请求协议格式(纯文本)保存的。一,AOF持久化的实现1.命令追加当AOF持久化功能处于打开状态时,服务器在执行完一个写命令后,会以协议格式把被执行的写命令追加到服务器状态的aof_buf缓冲区的末尾:...

《Redis设计与实现》之第十章:RDB持久化

RDB持久化功能所生成的RDB文件是一个经过压缩的二进制文件,通过该文件可以还原生成RDB文件时的数据库状态。(数据库状态:服务器中的非空数据库以及它们的键值对统称为数据库状态)一.RDB文件的创建和载入1.save和bgsave命令可以用来生成RDB文件save命令会阻塞Redis服务器进程,直到RDB文件创建完毕为...

《Redis设计与实现》之第九章:数据库

一.服务器中的数据库Redis服务器将所有数据库都保存在服务器状态redisServer结构的db数组中,db数组中的每个项都是一个redisDb结构,每个redisDb结构代表一个数据库。structredisServer{   //一个数组,保存着服务器中的所有数据库 &nb...

《Redis设计与实现》之第六章:整数集合

 整数集合是Redis用来保存整数值的集合抽象数据结构,它可以保存类型为int16_t,int32_t,int64_t的整数值,并且保证集合中不会出现重复元素1.整数集合的实现typedefstructintset{  //编码方式  uint32_tencoding;  //集合中包含的元素数量  uint...

《Redis设计与实现》之第四章:字典

一,哈希表节点哈希表节点使用dictEntry结构表示,每个dictEntry结构都保存一个键值对。typedefstructdictEntry{  //键  void*key;  //值  union{    void*val;    uint64_tu64;    int64_ts64;  }v;  //指向下一个...

《Redis设计与实现》之第八章:对象

 之前我们学习了Redis中使用到的数据结构,但是Redis并没有直接使用这些数据结构来实现键值对数据库,而是基于这些数据结构创建了一个对象系统。该系统包含字符串对象,列表对象,哈希对象,集合对象和有序集合对象这五中类型的对象。一.对象的类型和编码Redis使用对象来表示数据库中的键和值,每次在数据库中新创建...

《Redis设计与实现》之第三章:链表

当一个列表键包含了数量比较多的元素,又或者列表中包含的元素都是比较长的字符串时,Redis就会使用链表作为列表键的底层实现。比如:integers列表键的底层实现就是一个链表,链表中的每个节点都保存了一个整数值。1.链表节点:typedefstructlistNode{   //前置节点&...

《Redis设计与实现》之第二章:简单字符串SDS

一,什么是SDS?1.引出SDSC字符串:c语言中,用空字符结尾的字符数组表示字符串简单动态字符串(SDS):Redis中,用SDS来表示字符串。在Redis中,包含字符串值的键值对在底层都是由SDS实现的首先,Redis使用C语言写的,但是Redis没有使用C语言传统的字符串表示,它自己构建了简单字符串的抽象类型来表...

《Redis设计与实现》之第七章:压缩列表

压缩列表是列表键和哈希键的底层实现之一。压缩列表是为了节约内存而开发的,是由一系列特殊编码的连续内存块组成的顺序型数据结构。【压缩列表是一种数据结构,这种数据结构的功能是将一系列数据与其编码信息存储在一块连续的内存区域,这块内存物理上是连续的,逻辑上被分为多个组成部分,其目的是在一定可控的时间复杂读条件下尽可能的减少不...

小程序支付功能怎么实现?

一.支付接口配置1.注册开发者账号首先,需要在微信公众平台注册开发者账号。在这个过程中,需要填写公司名称、联系方式等相关信息。在注册完成后,需要进行身份认证、资质认证等过程,才能够获得小程序应用的开发权限。2.配置支付接口在微信公众平台中,选择开发-接口设置-支付,进行支付接口配置。首先需要开通微信支付功能,并上传证书...

网页中通过css实现视频显示自适应

基本原理是使用媒体查询实现,下面直接上代码视频播放的html标签。<video controls><source src="video.mp4" type="video/mp4"><source src=&qu...

Linux如何实现SpringBoot项目开机自启

1)先切换到系统目录cd/etc/systemd/system全选复制2)新建注册服务脚本viiot-server.service全选复制内容如下:[Unit]Description=iot-serverAfter=network.target[Service]Type=forkingExecStart=/app/io...
首页上一页12345...下一页尾页