抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

SQL语句执行的经过从用户发起请求,到服务接口调用MySQL驱动,MySQL服务器执行完SQL语句返回结果中间发生了什么?首先放一张图来看整个过程使用到的各个组件,然后再对各个过程进行分析。 1. 连接过程以Openresty服务器为例,Openresty是多进程+I/O多路复用结构(Nginx的I/O模型),可以支撑高的并发,一个Worker就是一个进程,一个进程可以...

MySQL索引 B+Tree 平衡树,查找树,所有叶子节点位于同一层 进行查找时首先再根节点进行二分查找,找到一个key所在的指针,然后递归的在指针所指向的节点进行查找,直到查到叶子节点,然后在叶子节点二分查找,找出key所对应的data 插入删除操作会破坏数的平衡性,需要进行分裂、合并、旋转等操作来维护平衡性 与红黑树相比 B+树的高度更低 更适合磁盘访问,节点大小设置和磁盘页大...

事务 ACID 原子性 隔离性 一致性 持久性 应对系统崩溃,可以用Redo Log恢复 AUTOCOMMIT:MySQL默认采用自动提交,不显示start transaction,每个查询都会被当成一个事务执行并自动提交 并发一致性问题 丢失修改 脏读 不可重复读 幻读 insert操作引起 锁 锁粒度 行锁 表锁 锁类型 读写锁 互斥锁(X锁...

单实例往往不能满足生产环境的需求,需要引入Redis集群,比较常见的Redis集群方案有主从复制、哨兵模式、官网的Redis Cluster,另外还有一些Proxy模式,各大厂商也有自己的方案。 主从复制模式基本架构 工作原理 slave向master发送SYNC命令,master接收到命令后通过bgsave保存快照(RDB持久化),并使用缓冲区记录保存快照期间执行的写命令 master将快...

什么是热点key?对于web应用来说,用户消费的数据远远大于生产的数据,大多人使用都只是进行浏览,少数的人才会进行评论。对于web服务来说,某些热门的内容,读请求的量级可能是非常大的,数据库无法支持这么高并发的请求,基本都会使用Redis集群做缓存,但是如果如果热点数据的请求量过大,导致热点key所在Redis节点无法支撑,这种情况就需要采用额外的措施解决。当然Redis的性能还是非常好的,...

数据类型STRING 字符串、整数、浮点数 LIST 列表 SET 集合 ZSET 有序集合 HASH 哈希表 数据结构字典 链地址法解决冲突 rehash、渐进式rehash 跳跃表 基于有序链表建多级索引 相比红黑树的优点 实现起来更简单 范围查找更快 支持无锁操作 使用场景计数器 string可以进行自增自减运算,适合频繁读写的计数器 缓存查找表 类似缓存,利用...

在计算机网络的经典五层协议中,TCP属于运输层,实现了进程间的通信,保证了数据的可靠传输,属于计算机网络协议族中最重要的协议之一,那么TCP是如何实现可靠数据传输的呢? 底层实现运输层的进程间通信是通过socket实现的,socket是一个抽象的概念,在Linux系统中以文件的形式存在。网络层通过IP来区分主机,运输层则增加了端口的概念来区分进程。TCP协议中使用目标IP、目标端口、源IP、...

Web应用存在HTTP和HTTPS两种通信方式,HTTP默认端口80,数据以明文传输,HTTPS默认端口443,数据加密传输。 HTTPS协议HTTPS实际上并不是一种新的网络协议,是HTTP的基础上加了SSL层,数据的加密就是在SSL层完成的。 数据传输方式明文传输客户端和服务器已明文方式传输数据,没有安全性,数据再传输过程中可能被劫持和篡改 对称加密传输对称加密算法:双方使用同一秘钥对数...

我们知道HTTP协议是无状态的,那么在Web开发中如何做好用户的整个浏览过程的控制,最经典的解决方案就是使用Cookie和Session。Cookie是客户端的机制,把用户数据缓存在客户端,而Session是服务端的机制,每个用户都会被分配一个唯一的SessionID,可以通过url传输或保存在客户端的Cookie中,也可以将Session保存在数据库中,比如Redis中。 Session和...

基本概念WebSocket是一种网络通信协议,是HTML5新增的特性,实现了基于浏览器的远程socket,使浏览器和服务器可以进行全双工通信,大部分浏览器都对此做了支持。WebSocket的URL格式形如:ws://localhost:80/、wss://localhost:443/ 为什么有了HTTP协议还要WebSocketHT...