03 2021 档案

摘要:做内存快照就需要考虑两个问题 1. 给哪部分数据做快照? 对全量内存数据做快照,做快照可以使用后台线程执行快照 2. 在快照期间能否有新的数据操作? 当然可以了,如果在rdb期间不能操作数据那是致命性的, redis使用操作系统提供的写时复制技术,主线程fork子线程,主线程会复制主线程的页表如果主 阅读全文
posted @ 2021-03-17 17:34 rudynan 阅读(296) 评论(0) 推荐(0) 编辑
摘要:AOF 记录日志是在处理完请求时,好处是记录的都是成功的请求,不会阻塞写操作 但是会阻塞后续的操作,因为这一步也是主线程执行的 写入磁盘是影响性能的,redis给我们提供了三种同步时机 1. always 2. everysec 4. no 先写入aof文件的内存缓冲区 由系统决定何时存入磁盘 当a 阅读全文
posted @ 2021-03-17 11:44 rudynan 阅读(498) 评论(0) 推荐(0) 编辑
摘要:redis的单线程是针对网络io与键值的操作来说的,其他的比如持久化异步删除等是其他线程负责的 那么redis为什么使用单线程? 因为多线程程序面临的共享资源的并发控制问题,如果只是简单的加个互斥锁就会让这部分程序成为瓶颈,并且会导致系统降低易用性 为什么redis使用单线程还这么快? 1. 大部分 阅读全文
posted @ 2021-03-17 10:43 rudynan 阅读(76) 评论(0) 推荐(0) 编辑
摘要:redis为什么快? 首先是基于内存存储 然后高效的数据结构是redis快速处理数据的基础,那么接下来讲讲redis的value数据结构 sds简单动态字符车/双向链表/压缩链表/哈希表/跳表/整数数组 上述的数据结构都是value的表现形式,那么redis是如何通过redis的key找到对应的va 阅读全文
posted @ 2021-03-16 18:21 rudynan 阅读(45) 评论(0) 推荐(0) 编辑
摘要:用来描述请求处理结果,格式 3位数字 和 原因短语组成 比如: 200 OK 状态码类别 1. 1XX 信息类状态码 接收的请求正在处理 2. 2XX 成功状态码 204 no content不允许返回实体的主体 206 partial content 成功执行了范围请求 3. 3XX 重定向状态码 阅读全文
posted @ 2021-03-16 09:54 rudynan 阅读(45) 评论(0) 推荐(0) 编辑
摘要:GET /index.htm HTTP/1.1 Host: hackr.jp 上面是http请求报文中的内容,意思是以GET请求获取http服务器上的index.htm资源 HTTP/1.1 200 OK Date: Tue, 10 Jul 2012 06:50:15 GMT Content-Len 阅读全文
posted @ 2021-03-15 11:06 rudynan 阅读(60) 评论(0) 推荐(0) 编辑
摘要:1 public class F { 2 static { 3 System.out.println("f static"); 4 } 5 6 private static int a = me(); 7 8 private static int me() { 9 System.out.printl 阅读全文
posted @ 2021-03-12 17:33 rudynan 阅读(72) 评论(0) 推荐(0) 编辑
摘要:1 public enum Singleton { 2 3 INSTANCE; 4 5 public void doSomeThing(){ 6 7 // 业务逻辑 8 9 } 10 11 } 12 13 14 15 如何调用 16 Singleton.INSTANCE.doSomeThing(); 阅读全文
posted @ 2021-03-12 16:51 rudynan 阅读(35) 评论(0) 推荐(0) 编辑
摘要:http是tcp/ip协议簇的子集 tcp/ip协议是分层设计的,分为应用层 传输层 网络层 数据链路层,目的是如果那块需要更改只改那一部分就可以,不用整体调整 应用层: 决定了向用户提供应用服务时通信的活动,协议簇内预设了多种应用服务,比如ftp dns http 传输层: 提供处理网络连接中的两 阅读全文
posted @ 2021-03-12 09:50 rudynan 阅读(135) 评论(0) 推荐(0) 编辑
摘要:分布式事务解决方案分类 1. 刚性事务 需要所有的参与者都执行ok之后再一起提交,致命的问题就是性能问题 2. 柔性事务 满足基本可用和最终一致性 cap理论 针对分布式系统来说 1. C 一致性 2. A 可用性 3. P 分区容错性 在分布式架构下,分区容错性是基本要求,否则就失去了分布式的价值 阅读全文
posted @ 2021-03-11 21:56 rudynan 阅读(216) 评论(0) 推荐(0) 编辑
摘要:put方法执行逻辑 1. 初始化方法initTable 这个方法在自旋 在第一次put的时候table尚未初始化,会调用初始化table的方法,初始化方法支持并发,但是只会有一个线程去执行table数组的初始化,创建的线程会把sizeCtl属性设置为-1代表正在初始化,其他线程检查sizeCtl属性 阅读全文
posted @ 2021-03-11 20:36 rudynan 阅读(148) 评论(0) 推荐(0) 编辑
摘要:icp索引下推 Index Condition Pushdown mysql5.6之后开始支持,当where中的条件可以使用到index,就使用where条件过滤索引,然后再回表,需要配置文件开启 目的是减少基表的记录数减少io icp的使用条件,聚合索引不能使用,因为已经加载到了innodb bu 阅读全文
posted @ 2021-03-11 10:21 rudynan 阅读(122) 评论(0) 推荐(0) 编辑
摘要:当一个事务对记录进行update的时候会先去内存查看是否有一个锁结构跟这条记录关联,如果没有就创建一个锁结构与记录关联保存着trx_id和is_waiting = false 在事务未提交期间,又一个事务要更新这条记录,查到有锁结构与记录关联,会新创建一条锁结构,保存的is_waiting = tr 阅读全文
posted @ 2021-03-11 10:20 rudynan 阅读(102) 评论(0) 推荐(0) 编辑
摘要:事务隔离级别 1. 脏写 一个事务回滚影响了其他已提交事务对此记录的修改 2. 脏读 一个事务读到了未提交事务对此记录修改后的值 3. 不可重复读 一个事务中,读到了相同记录不同的值,这期间有其他事务对此记录进行修改 4. 幻读 一个事务中,每次读的数据都变多 sql标准下的隔离级别 1. read 阅读全文
posted @ 2021-03-10 10:48 rudynan 阅读(150) 评论(0) 推荐(0) 编辑
摘要:为了回滚而记录日志,我们称之为undo log 事务id 事务对一个表进行了增删改操作,就会为这个事务分配一个唯一的id,事务id是一个全局变量,存在系统表空间中,值是自增的 trx_id聚簇索引中存储的隐藏列,存储的是某个事务对这条记录做修改时的事务id roll_pointer 聚簇索引中的隐藏 阅读全文
posted @ 2021-03-05 11:50 rudynan 阅读(927) 评论(2) 推荐(1) 编辑
摘要:原子性 要么一起成功要么都不成功 隔离性 多次状态的转换不能互相影响,执行顺序要有一定的规律 一致性 最终的结果符合现实中的约束,就是符合一致性 持久性 状态的改变会永久性保存 redo日志 我们知道 数据库与磁盘交互是以页为单位的,页被缓存在buffer pool中,修改了数据之后为了不使数据丢失 阅读全文
posted @ 2021-03-03 14:38 rudynan 阅读(164) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示