摘要:
if-else分支代码在我们日常开发中基本上是最常用的逻辑,但是,经常在if-else代码过多的情况下,代码会变得特别臃肿,并且代码的可扩展性会变得不好,所以,优化if-else代码逻辑是很有必要的。以下介绍几种我在日常工作中比较常用的优化手段 1.通过switch-case优化 这是最简单的优化方 阅读全文
摘要:
大家都知道,https俗称为安全的http,何谓安全?在讲https之前,我们先来看一个简单的聊天软件demo看下面例子,我们要实现A能发一个hello消息给B:如果我们要实现这个聊天软件,本文只考虑安全性问题,则要实现:A发给B的hello消息包,即使被中间人拦截到... 阅读全文
摘要:
原文链接 https://blog.csdn.net/qq_21996541/article/details/79796117 之前项目一直使用的是普元框架,最近公司项目搭建了新框架,主要是由公司的大佬搭建的,以springboot为基础。为了多学习点东西,我也模仿他搭了一套自己的框架,但是在完成分 阅读全文
摘要:
前文 Base 128 Varints 编码(压缩算法) 介绍了Base 128 Varints这种对数字传输的编码,了解到了这种编码方式是为了最大程度压缩数字的。但是,在前文里,我们只谈论到了正数的情况,那如果出现了负数,该怎么办?zigzag压缩算法解决的就是这个... 阅读全文
摘要:
Base 128 Varint可以说是一种编码方式,也可以说是一种压缩算法。这种压缩算法是用来压缩数字的传输的,压缩的依据是基于一个现实:越小的数字,越经常使用我们来看看一个例子:如果我们要网络传输数字1,会怎样传输呢?假设我们用的是32位的整形传输,那么经过编码,这... 阅读全文
摘要:
前面一文 mysql锁 介绍了mysql innodb存储引擎的各种锁,本文介绍一下innodb存储引擎的间隙锁,就以下问题展开讨论1.什么是间隙锁?间隙锁是怎样产生的?2.间隙锁有什么作用?3.使用间隙锁有什么隐患?一、间隙锁的基本概念1.什么叫间隙锁当我们用范围条... 阅读全文
摘要:
前提:表按照uid水平分为2张,其他情况类似推理需求:通过字段time升序分页,实现 select * from T order by time offset X limit Y1.全局视野法假设现在要拿到第3页的数据,如下图所述,服务层通过uid取模将数据分布到两个... 阅读全文
摘要:
ReenTrantLock可重入锁(和synchronized的区别)总结可重入性:从名字上理解,ReenTrantLock的字面意思就是再进入的锁,其实synchronized关键字所使用的锁也是可重入的,两者关于这个的区别不大。两者都是同一个线程没进入一次,锁的计... 阅读全文
摘要:
1.测试目的: 测试出opcache中,opcache.revalidate_freq这个参数最适合的大小 说明:如果opcache.revalidate_freq参数越大,服务器单位时间能接收的请求越多,但是加载代码的频率越低,会造成代码加载不及时的问题,本次测试要找出相对最适合值 2.测试方法 阅读全文
摘要:
前面2文 基于http的netty demo 基于socket的netty demo 讲了netty在http和socket的使用,下面讲讲netty如何使用websocket websocket是html5提出来的一个东西,功能很强大,可以支持长连接,实现服务器向客户端的通信,这里不做过多的介绍, 阅读全文
摘要:
前面一文说了 基于http的netty demo 和http不一样,http可以用浏览器来充当客户端调用,所以基于socket的netty,必须要编写客户端和服务器的代码 实现功能: 客户端给服务器发消息,服务器给客户端回消息 一直循环 服务器代码 客户端代码 执行结果 先运行服务器: 再运行客户端 阅读全文