摘要:
mysql的锁 问题1 : 如何查看mysql的自动提交的设置? select @@autocommit; 查看默认提交的状态是否是自动提交 0手动提交 1 自动提交 问题2 :怎么设置autocommit; set @@autocommit=0; 设置的是本次mysql 窗口的自动提交取消,不影响 阅读全文
摘要:
乐观锁介绍:(乐观锁主要用于抢红包,淘宝抢购,秒杀之类) 乐观锁( Optimistic Locking ) 相对悲观锁而言,乐观锁假设认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突了,则让返回用户错误的信息,让用户决定如何去做。那么我们 阅读全文
摘要:
select优点 1)select()的可移植性更好,在某些Unix系统上不支持poll() 2)select() 对于超时值提供了更好的精度:微秒,而poll是毫秒。 select缺点 1) 单个进程可监视的fd数量被限制。 2) 需要维护一个用来存放大量fd的数据结构,这样会使得用户空间和内核空 阅读全文
摘要:
一 、IO操作本质 数据复制的过程中不会消耗CPU 1 内存分为内核缓冲区和用户缓冲区 2 用户的应用程序不能直接操作内核缓冲区,需要将数据从内核拷贝到用户才能使用 3 而IO操作、网络请求加载到内存的数据一开始是放在内核缓冲区的 二、 IO模型 BIO – 阻塞模式I/O 用户进程从发起请求,到最 阅读全文
摘要:
IO操作 IO分两阶段(一旦拿到数据后就变成了数据操作,不再是IO): 1.数据准备阶段 2.内核空间复制数据到用户进程缓冲区(用户空间)阶段 在操作系统中,程序运行的空间分为内核空间和用户空间。 应用程序都是运行在用户空间的,所以它们能操作的数据也都在用户空间。 阻塞IO和非阻塞IO的区别在于第一 阅读全文
摘要:
一、哨兵实现原理:三个定时任务,也回答了三个问题: 问题一:sentinel没有配置从节点信息如何知道从节点信息的? 1、每隔10秒,sentinel进行向主节点发送info命令,用于发现新的slave节点 问题二、如何加入新的sentinel的 2、每隔2秒,向redis数据节点_sentinel 阅读全文
摘要:
mysql 数据表引擎有哪些? MyISAM、InnoDB、HEAP、BOB,ARCHIVE,CSV等。 MyISAM:成熟、稳定、易于管理,快速读取。一些功能不支持(事务等),表级锁。 InnoDB:支持事务、外键等特性、数据行锁定。空间占用大,不支持全文索引等(5.6.4以后支持全文索引)。 常 阅读全文
摘要:
QPS 原理:每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间。 公式:( 总PV数 * 80% ) / ( 每天秒数 * 20% ) = 峰值时间每秒请求数(QPS) 。 机器:峰值时间每秒QPS / 单台机器的QPS = 需要的机器 。 每天300w PV 的在单台机器上,这台机器 阅读全文
摘要:
1. 插入排序 插入排序:插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序;首先将第一个作为已经排好序的,然后每次从后的取出插入到前面并排序; 时间复杂度:O(n²) 空间复杂度:O(1) 稳定性:稳定 def insert 阅读全文
摘要:
数据结构分类 数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成 。常用的数据结构有:数组,栈,链表,队列,树,图,堆,散列表等,如图所示: 每一种数据结构都有着独特的数据存储方式,下面为大家介绍它们的结构和优缺点。 1、数组 数组是可以再内存中连续存储多个元素 阅读全文