<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Severn_Zhou的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Severn_Zhou</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Severn_Zhou]]></copyright><item><title><![CDATA[TCP建立连接三次握手和释放连接四次挥手]]></title><link>https://blog.youkuaiyun.com/Severn_Zhou/article/details/104792099</link><guid>https://blog.youkuaiyun.com/Severn_Zhou/article/details/104792099</guid><author>Severn_Zhou</author><pubDate>Wed, 11 Mar 2020 22:06:53 +0800</pubDate><description><![CDATA[TCP报文断的首部格式
TCP是面向字节流的，但是传输的数据单元是报文段。提个TCP报文段由首部和数据部构成，TCP所有的功能都体现在它首部个字段的作用。所以，先弄清TCP首部各字段的作用，才能掌握TCP的工作原理。
下面是TCP报文段首部的格式。
TCP报文段首部的前20个字节是固定的，后面有根据需要而增加的选项，所以TCP首部最小时20个字节。

首部个字段意义：

...]]></description><category></category></item><item><title><![CDATA[schema与数据类型]]></title><link>https://blog.youkuaiyun.com/Severn_Zhou/article/details/104477309</link><guid>https://blog.youkuaiyun.com/Severn_Zhou/article/details/104477309</guid><author>Severn_Zhou</author><pubDate>Mon, 09 Mar 2020 13:25:57 +0800</pubDate><description><![CDATA[选择优化的数据类型
MySQL支持的数据类型非常多，选择正确的数据类型对于获得系统的的良好性能至关重要。不管存储哪种类型的数据，下面几个简单的原则都有助于做出更好的选择
更小的通常更好
一般情况下，应该选择能够正确存储数据的最小的数据类型。更小的数据类型通常更快，因为他们占用更少的磁盘、内存和CPU缓存，并且处理时需要的CPU周期也更少。
但是要确保没有低估需要存储数据值的存储范围，在schema...]]></description><category></category></item><item><title><![CDATA[Redis字典（dict）--含源码]]></title><link>https://blog.youkuaiyun.com/Severn_Zhou/article/details/99725573</link><guid>https://blog.youkuaiyun.com/Severn_Zhou/article/details/99725573</guid><author>Severn_Zhou</author><pubDate>Wed, 21 Aug 2019 17:50:38 +0800</pubDate><description><![CDATA[字典，是一种保存键值对（key-value）的数据结构。字典的键是唯一的，程序可以通过键来对值进行修改，或者根据键来删除整个键值对。
字典作为一种常用的数据结构，被很多高级编程语言内置，如PHP的array，python的dict。但Redis由C语言实现，并没有内置这种数据结构，因此Redis构建了自己的字典结构。Redis键值对形式的数据库就是由字典实现的。
Redis底层是有哈希表实现的，一...]]></description><category></category></item><item><title><![CDATA[Redis链表（adlist）--含源码]]></title><link>https://blog.youkuaiyun.com/Severn_Zhou/article/details/99674934</link><guid>https://blog.youkuaiyun.com/Severn_Zhou/article/details/99674934</guid><author>Severn_Zhou</author><pubDate>Sat, 17 Aug 2019 17:01:34 +0800</pubDate><description><![CDATA[链表作为经典且常用的数据结构，在很多高级编程语言中都内置了链表这种数据额结构，但是Redis是有C语言实现，并没有内置这种数据结构，所以Redis自身构建了链表。
节点和链表的实现
listNode结构表示为：
typedef struct listNode {
    struct listNode *prev;	// 指向前一个元素的指针
    struct listNode *next;	...]]></description><category></category></item><item><title><![CDATA[Redis简单动态字符串（SDS）--含源码]]></title><link>https://blog.youkuaiyun.com/Severn_Zhou/article/details/98855089</link><guid>https://blog.youkuaiyun.com/Severn_Zhou/article/details/98855089</guid><author>Severn_Zhou</author><pubDate>Tue, 13 Aug 2019 10:45:23 +0800</pubDate><description><![CDATA[简单动态字符串
在Redis的数据库里面，包含字符串值的键值对在底层由简单动态字符串（simple dynamic string，SDS）实现。
例如客户端执行命令：
redis&gt; SET msg "Redis"
OK

Redis在数据库中创建了这个键值对。

键是一个字符串对象，对象底层实现是一个保存着字符串“msg”的SDS
值是一个字符串对象，对象底层实现是一个保存着字符串“Redi...]]></description><category></category></item><item><title><![CDATA[Redis持久化]]></title><link>https://blog.youkuaiyun.com/Severn_Zhou/article/details/98491153</link><guid>https://blog.youkuaiyun.com/Severn_Zhou/article/details/98491153</guid><author>Severn_Zhou</author><pubDate>Tue, 06 Aug 2019 16:46:21 +0800</pubDate><description><![CDATA[Redis是一个键值对数据库服务器，并且是内存数据库。在处理客户端请求时都是在内存中操作，如果没有将内存中的数据保存到磁盘上，那么一旦服务器宕机或者进程退出，内存中的数据就会消失。
对于只把Redis当做缓存的项目来说，数据消失问题不大，只需要重新从数据源把数据加载进来就可以。但是如果是将Redis当做存储数据库来使用，数据消失是不能被允许的。
为了解决这个问题，Redis提供了两种方式来使数据持...]]></description><category></category></item><item><title><![CDATA[MySQL索引原理]]></title><link>https://blog.youkuaiyun.com/Severn_Zhou/article/details/97280147</link><guid>https://blog.youkuaiyun.com/Severn_Zhou/article/details/97280147</guid><author>Severn_Zhou</author><pubDate>Mon, 29 Jul 2019 11:33:49 +0800</pubDate><description><![CDATA[索引是提高MySQL查询性能的一个重要途径，要了解数据库索引的底层原理，我们先得了解一种叫树的数据结构，二叉树是树种非常经典的一种数据结构。
不同的存储引擎可能使用不同的数据结构，但是我们熟知的InnoDB使用的是B+Tree的数据结构。所以，要理解索引的底层原理，我们需要从二叉搜索树、平衡二叉树、B-Tree和B+Tree一步步开始了解。
二叉树（Binary Search Trees）
二叉树...]]></description><category></category></item><item><title><![CDATA[MySQL查询过程解析]]></title><link>https://blog.youkuaiyun.com/Severn_Zhou/article/details/97038873</link><guid>https://blog.youkuaiyun.com/Severn_Zhou/article/details/97038873</guid><author>Severn_Zhou</author><pubDate>Wed, 24 Jul 2019 14:12:43 +0800</pubDate><description><![CDATA[MySQL的三层逻辑架构


最上层主要负责连接处理、授权认证、安全等功能。每个客户端的链接都对应着服务器的一个线程。当客户端连接到MySQL服务器时，服务器对客户端进行认证，认证方式可以为用户名和密码，也可以是证书。登录验证过后，服务器还会检验客户端是否有执行某个查询的权限。
第二层负责解析查询。MySQL大多数的核心服务均在这一层，包括查询解析、分析、优化、缓存、函数等。存储过程、触发器、视图...]]></description><category></category></item><item><title><![CDATA[Redis的过期键删除策略]]></title><link>https://blog.youkuaiyun.com/Severn_Zhou/article/details/95667696</link><guid>https://blog.youkuaiyun.com/Severn_Zhou/article/details/95667696</guid><author>Severn_Zhou</author><pubDate>Mon, 15 Jul 2019 18:37:58 +0800</pubDate><description><![CDATA[过期字典
过期键的判断
过期键删除策略


]]></description><category></category></item><item><title><![CDATA[Redis事务的ACID性质]]></title><link>https://blog.youkuaiyun.com/Severn_Zhou/article/details/95235667</link><guid>https://blog.youkuaiyun.com/Severn_Zhou/article/details/95235667</guid><author>Severn_Zhou</author><pubDate>Fri, 12 Jul 2019 09:41:19 +0800</pubDate><description><![CDATA[在传统关系型数据库中，常用ACID性质来检验事务的安全性和可靠性。
在Redis中，事务总是具有原子性（Atomicity）、一致性（Consistency）、和隔离性（Isolation）的，并且当Redis运行在一些特定的持久化模式下，事务也具有耐久性（Durability）。
原子性
事务具有原子性是指，数据库事务中将多个操作看做一个整体来执行，要么执行所有的操作，要么一个操作也不执行。
对...]]></description><category></category></item></channel></rss>