- 博客(12)
- 资源 (1)
- 收藏
- 关注
原创 Nginx核心
Nginx请求处理流程分析上图:Nginx大致会处理三种流量:WEB,EMAIL,TCP流量。Nginx中三个大的状态机:处理TCP、UDP的传输层状态机,处理应用层的HTTP状态机,处理邮件的MALL状态机。当Nginx解析出请求需要访问静态资源的时候,会走左下方的流程,如果Nginx做反向代理的时候,将请求的资源缓存在磁盘也是这条线。对于每个处理完成的请求,出记录Access日志...
2019-10-31 20:19:22 307
原创 如何给字符串字段加索引
如果有这样一个场景,某个字段保存的是邮箱,然后需要给这个字段建立索引,有如下几种解决方案:全字段索引alter table user add index index1(email);不建议用这种方式,因为索引树需要存储字段的全部值造成不必要的空间浪费使用前缀索引alter table user add index index1(email(6));这种方式可以节约索引的存储空间,但...
2019-10-31 17:15:24 2155
原创 FTP、FTPS、SFTP的概念和区别
FTP(File Transfer Protocol)文件传输协议,用于Internet上的文件的双向传输。Ftp服务器:支持Ftp协议的服务器。与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比...
2019-10-30 10:00:35 1578
原创 nginx搭建静态资源服务器
访问nginx服务器根目录,即可访问到static目录下的静态资源并进行压缩传输:http{ #... gzip on; gzip_min_length 1;#文件小于改值就不用压缩传输 gzip_comp_level 2;#压缩级别 gzip_types text/plain application/x-javascript text/css; #指定的类型文件才...
2019-10-29 22:05:02 156
原创 nginx热部署实现版本升级
在nginx/sbin目录下,有一个文件叫nginx,是nginx的二进制可执行文件,当nginx需要升级的时候,我们可以直接将新的nginx二进制文件替换掉这个旧的二进制文件。然后通过热部署,实现nginx版本的平滑升级。热部署的步骤如下:备份sbin目录下旧的nginx将升级过的nginx二进制文件放入sbin目录下用ps -ef | grep nginx命令找到旧nginx的mast...
2019-10-29 21:17:46 292
原创 Redis底层数据结构(4)整数集合
总结自《redis设计与实现》redis版本:3.0(因此只具有参考意义,高版本的redis已经做了很多改变)当Redis键的值时整数并且元素数量不多时,使用整数集合作为该键的底层数据结构。整数集合整数集合的结构:typedef struct intset { uint32_t encoding; //编码方式 uint32_t length; //集合包含的元素数量 int8...
2019-10-16 22:11:57 139
原创 Redis内存淘汰策略
Redis占用内存大小1、通过配置文件配置//redis.confmaxmemory 100mb2、在客户端动态修改//设置Redis最大占用内存大小为100M127.0.0.1:6379> config set maxmemory 100mb//获取设置的Redis能使用的最大内存大小127.0.0.1:6379> co...
2019-10-09 15:10:01 158
原创 Linux搭建sftp(亲测有效)
sftp是SSH File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的网络的加密方法。SFTP协议是在FTP的基础上对数据进行加密,使得传输的数据相对来说更安全。1:创建用户组、用户、设置密码groupadd sftpuseradd -g sftp -s /sbin/nologin -M sftp1passwd sftp12:创建sft...
2019-10-07 17:18:21 1785
原创 Redis过期键的删除策略
数据库键空间Redis服务器中的每个数据库都由redisDb表示,其中,redisDb结构的dict字典保存了数据库中的所有键值对,这个字典就成为键空间:typedef struct redisDb{ ...... dict *dict; ......}redisDb;下图是一个数据库键空间的示例图:...
2019-10-03 22:04:44 280
原创 Redis五种数据类型的底层实现总结
Redis的五中数据类型:字符串(string)列表(list)哈希(hash)集合(set)有序集合(zset)Redis所用到的底层数据结构:long类型的整数简单动态字符串(sds)emb编码的简单动态字符串(embstr)链表(实际是双端链表 linkedlist)字典(实际是哈希表 hashtable)整数集合(intset)压缩列表(ziplist)跳...
2019-10-02 22:34:13 691
原创 Redis底层数据结构(6)跳跃表
跳跃表跳跃表是一种有序数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。当一个有序集合包含的元素数量多,又或者有序集合中的元素的成员是比较长的字符串时,Redis就会使用跳跃表作为有序集合键的底层实现。下图为一个跳跃表示例:说明:跳跃表节点结构定义:...
2019-10-02 20:54:45 320
原创 Redis底层数据结构(5)压缩列表
总结自《redis设计与实现》redis版本:3.0(因此只具有参考意义,高版本的redis已经做了很多改变)压缩列表压缩列表是Redis为了节约内存而开发的,是由一系列特殊编码的连续内存块组成的顺序型数据结构。一个压缩列表可以包含任意多个节点,每个节点可以保存一个字节数组或者一个整数值。当一个列表键、哈希键或者有序集合键包含少量值,并且每个列表项要么是小整数值,要么是长度比较短的字符...
2019-10-02 20:44:50 166
Xdebug_Helper.zip
2019-07-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人