yycoder's Blog

一生想做浪漫极客

CAP理论

CAP CAP理论 CAP 理论/定理open in new window起源于 2000年,由加州大学伯克利分校的Eric Brewer教授在分布式计算原理研讨会(PODC)上提出,因此 CAP定理又被称作 布鲁尔定理(Brewer’s theorem) 2年后,麻省理工学院的Seth Gilbert和Nancy Lynch 发表了布鲁尔猜想的证明,CAP理论正式成为分布式领域的定理...

电商系统全貌

电商系统全貌

Redis-5种基础数据类型详解

Redis入门:5种基础数据类型详解 Redis所有的key(键)都是字符串。我们在谈基础数据结构时,讨论的是存储值的数据类型,主要包括常见的5种数据类型,分别是:String、List、Set、Zset、Hash Redis数据结构简介 Redis基础文章非常多,关于基础数据结构类型,我推荐你先看下官方网站内容 (opens new window),然后再看下面的小...

如何优雅的使用和理解线程池

如何优雅的使用和理解线程池 前言 平时接触过多线程开发的童鞋应该都或多或少了解过线程池,之前发布的《阿里巴巴 Java 手册》里也有一条: 可见线程池的重要性。 简单来说使用线程池有以下几个目的: 线程是稀缺资源,不能频繁的创建。 解耦作用;线程的创建于执行完全分开,方便维护。 应当将其放入一个池子中,可以给其他任务进行复用。 线程池原理 谈到线程池就会想到...

MySQL-事务的隔离级别

MySQL-事务的隔离级别 实验数据准备 mysql> create table city( -> id int(10) auto_increment, -> name varchar(30), -> primary key (id) -> )engine=innodb charset=utf8mb4; insert int...

线程状态与流转关系

线程状态与流转关系 线程的状态 新建(New):创建后尚未启动的线程状态 可运行(Runnable):包含 Running(位于可运行线程池中)和 Ready(位于线程池中等待调度选中获取CPU使用权) 无限期等待(Waiting):不会被分配CPU执行时间,需要显式唤醒 限期等待(Timed Waiting):在一定时间后会有系统自动唤醒 阻塞(Block...

JDK自带命令行JVM性能监控工具

当系统出bug需要定位问题的时候,知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段。这里所说的数据包括:运行日志,异常堆栈,GC日志,线程快照(threaddump/javacore文件),堆转储快照(heapdump/hprof文件)等。使用适当的虚拟机监控和分析工具可以加快我们分析数据、定位问题的速度。 JDK的命令行工具 JDK本身提供了很多方便的JVM性能监...

搭建自己的SSR服务器

由于十九大的原因,国内很多VPN都被禁用了,包括我已经使用了两年的蓝灯,于是在网上找翻墙方案,最后找到了通过使用SSR的方式,自己搭建服务器,稳定,速度快! 接下来我们看下如何操作: 首先要有一台国外的服务器 我选择认证GitHub学生认证,然后获得了一个Student Developer Pack,里边有DigitalOcean优惠券$50,可以创建最低配的服务器,使用10个月...

使用Charles对Https请求进行抓包

由于近期公司的API接口升级成https协议,有时候想查看一下线上环境的返回结果, 按照Charles抓取http协议数据的方式是不能正确的看到https协议请求和返回结果的, 那Charles能抓取https数据吗? 答案是:可以的! 接下来我们看下如何操作: PC安装Charles SSL根证书 选择Install Charles Root Certificate菜单,Cha...