自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 MySQL索引原理

索引是提高MySQL查询性能的一个重要途径,要了解数据库索引的底层原理,我们先得了解一种叫树的数据结构,二叉树是树种非常经典的一种数据结构。不同的存储引擎可能使用不同的数据结构,但是我们熟知的InnoDB使用的是B+Tree的数据结构。所以,要理解索引的底层原理,我们需要从二叉搜索树、平衡二叉树、B-Tree和B+Tree一步步开始了解。二叉树(Binary Search Trees)二叉树...

2019-07-29 11:33:49 305 1

原创 TCP建立连接三次握手和释放连接四次挥手

TCP报文断的首部格式TCP是面向字节流的,但是传输的数据单元是报文段。提个TCP报文段由首部和数据部构成,TCP所有的功能都体现在它首部个字段的作用。所以,先弄清TCP首部各字段的作用,才能掌握TCP的工作原理。下面是TCP报文段首部的格式。TCP报文段首部的前20个字节是固定的,后面有根据需要而增加的选项,所以TCP首部最小时20个字节。首部个字段意义:...

2020-03-11 22:06:53 325

原创 schema与数据类型

选择优化的数据类型MySQL支持的数据类型非常多,选择正确的数据类型对于获得系统的的良好性能至关重要。不管存储哪种类型的数据,下面几个简单的原则都有助于做出更好的选择更小的通常更好一般情况下,应该选择能够正确存储数据的最小的数据类型。更小的数据类型通常更快,因为他们占用更少的磁盘、内存和CPU缓存,并且处理时需要的CPU周期也更少。但是要确保没有低估需要存储数据值的存储范围,在schema...

2020-03-09 13:25:57 678

原创 Redis字典(dict)--含源码

字典,是一种保存键值对(key-value)的数据结构。字典的键是唯一的,程序可以通过键来对值进行修改,或者根据键来删除整个键值对。字典作为一种常用的数据结构,被很多高级编程语言内置,如PHP的array,python的dict。但Redis由C语言实现,并没有内置这种数据结构,因此Redis构建了自己的字典结构。Redis键值对形式的数据库就是由字典实现的。Redis底层是有哈希表实现的,一...

2019-08-21 17:50:38 246 1

原创 Redis链表(adlist)--含源码

链表作为经典且常用的数据结构,在很多高级编程语言中都内置了链表这种数据额结构,但是Redis是有C语言实现,并没有内置这种数据结构,所以Redis自身构建了链表。节点和链表的实现listNode结构表示为:typedef struct listNode { struct listNode *prev; // 指向前一个元素的指针 struct listNode *next; ...

2019-08-17 17:01:34 214 1

原创 Redis简单动态字符串(SDS)--含源码

简单动态字符串在Redis的数据库里面,包含字符串值的键值对在底层由简单动态字符串(simple dynamic string,SDS)实现。例如客户端执行命令:redis> SET msg "Redis"OKRedis在数据库中创建了这个键值对。键是一个字符串对象,对象底层实现是一个保存着字符串“msg”的SDS值是一个字符串对象,对象底层实现是一个保存着字符串“Redi...

2019-08-13 10:45:23 167 1

原创 Redis持久化

Redis是一个键值对数据库服务器,并且是内存数据库。在处理客户端请求时都是在内存中操作,如果没有将内存中的数据保存到磁盘上,那么一旦服务器宕机或者进程退出,内存中的数据就会消失。对于只把Redis当做缓存的项目来说,数据消失问题不大,只需要重新从数据源把数据加载进来就可以。但是如果是将Redis当做存储数据库来使用,数据消失是不能被允许的。为了解决这个问题,Redis提供了两种方式来使数据持...

2019-08-06 16:46:21 165 1

原创 MySQL查询过程解析

MySQL的三层逻辑架构最上层主要负责连接处理、授权认证、安全等功能。每个客户端的链接都对应着服务器的一个线程。当客户端连接到MySQL服务器时,服务器对客户端进行认证,认证方式可以为用户名和密码,也可以是证书。登录验证过后,服务器还会检验客户端是否有执行某个查询的权限。第二层负责解析查询。MySQL大多数的核心服务均在这一层,包括查询解析、分析、优化、缓存、函数等。存储过程、触发器、视图...

2019-07-24 14:12:43 403 1

原创 Redis的过期键删除策略

过期字典过期键的判断过期键删除策略

2019-07-15 18:37:58 106 1

原创 Redis事务的ACID性质

在传统关系型数据库中,常用ACID性质来检验事务的安全性和可靠性。在Redis中,事务总是具有原子性(Atomicity)、一致性(Consistency)、和隔离性(Isolation)的,并且当Redis运行在一些特定的持久化模式下,事务也具有耐久性(Durability)。原子性事务具有原子性是指,数据库事务中将多个操作看做一个整体来执行,要么执行所有的操作,要么一个操作也不执行。对...

2019-07-12 09:41:19 800 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除