logo头像

待到风起时,扬帆济沧海

后端

redis总结

1. Redis为什么那么快 纯内存操作 单线程操作,避免了频繁的上下文切换 采用了非阻塞I/O多路复用机制 我们的redis-client在操作的时候,会产生具有不同事件类型的socket。在服务端,有一段I/0多路复用程序,将其...

golang的pprof使用技巧

1.安装易用的pprofgolang自带的prof包是runtime/pprof,这个是低级别的,需要你手动做一些设置等等周边工作,不利于我们快速上手,利用pprof帮助我们解决实际的问题。这里推荐davecheney封装的pprof...

缓存穿透、雪崩、击穿的解决方法

1.缓存穿透缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库查询,失去了缓存的意义。在流量大时,可能DB就挂掉了,要是有人利用不存在的key...

栈和队列

栈概念 栈(英语:stack)又称为堆栈或堆叠,栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数...

单向链表

操作流程示意图 完整代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657...

双向链表

示意图 双向链表:只有一个指针指向最开始的结点。 双端(双向)链表:有两个指针分别指向两端的节点。 循环(双向)链表:指向形成一个闭环。:有两个指针分别指向两端的节点。 完整代码123456789101112131415161...

mysql总结

MYSQL count总结 COUNT有几种用法?count(*),count(常数),count(列名) COUNT(字段名)和COUNT()的查询结果有什么不同?为什么《阿里巴巴Java开发手册》建议使用COUNT()count(...

HttpClient使用技巧

1. 规范背景1.1. http client选择 如无特殊情况(比如:单机tps上千),建议选Spring Rest Template做门面,Apache HttpClient 4.x做实现 1.2. rest template ...

RestTemplate使用技巧

1. 规范背景1.1. http client选择 如无特殊情况(比如:单机tps上千),建议选Spring Rest Template做门面,Apache HttpClient 4.x做实现 1.2. rest template ...