摘要: Redis为什么这么快? I/O复用模型。 单线程操作没有切换线程开销。 基于内存操作,快。 Redis数据结构 String 最基本的KV结构 hash 类似于java对象 list 集合可重复 set 不可重复 zset 有序集合score排序 基于redis的分布式锁实现 加锁 方式一:使用l 阅读全文
posted @ 2020-01-29 15:49 lastcy 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 记录一些自己对Spring AOP粗浅的理解:(如有不对望大佬指正) 1.spring容器里所有的bean都会被代理,实现了接口的用的jdk代理,没有实现接口的用cglib代理。 2.每个bean会有多个方法拦截器,拦截器分内外两层,外层拦截器是由spring控制,内层拦截器由用户自己控制(自己定义 阅读全文
posted @ 2019-10-12 09:30 lastcy 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 同步阻塞IO 当应用程序想要从socket流获取数据时,进程调用recvfrom I/O API: 当socket有数据进来,recvfrom调用内核,内核将数据从网卡拷贝到内核空间,再从内核空间拷贝到应用程序空间,recvfrom才返回给应用程序进行处理,它是一个同步操作,进程会一直阻塞直到数据拷 阅读全文
posted @ 2019-09-30 14:51 lastcy 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 建立连接的三次握手 断开连接的四次握手 阅读全文
posted @ 2019-09-29 15:35 lastcy 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 建立TCP连接。 客户端发送请求命令 GET/ www.xx.com /HTTP1.1。 客户端发送请求头信息。 服务器应答 http1.1 200 ok。 返回响应头信息。 服务器向客户端发送数据。 关闭连接(http1.0)或者保持连接(http1.1) 阅读全文
posted @ 2019-09-29 15:17 lastcy 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 1.调取对方的接口,对象自动转型成LinkedHashMap,直接用类型强会抛cast.Exception,解决方案 先序列化对象,再反序列化接受对象。 2.调取对方接口返回Long类型的值,我放直接使用Long接报Integer cast to Long异常,解决方案:使用Integer接并.lo 阅读全文
posted @ 2019-08-29 10:55 lastcy 阅读(1635) 评论(0) 推荐(0) 编辑
摘要: 查找/etc/.vimrc的内容,如果没有的话 新建~/vimrc文件,在文件中写入如下内容即可 set ai " auto indenting set history=100 " keep 100 lines of history set ruler " show the cursor posit 阅读全文
posted @ 2019-04-29 10:04 lastcy 阅读(561) 评论(0) 推荐(0) 编辑
摘要: 1.创建新分支 git branch [name] 2.将新分支push到远端 git push --set-upstream origin [name] 3.删除本地分支 git branch -d [name] 4.删除远端分支 git push origin --delete [name] 5 阅读全文
posted @ 2019-04-19 17:47 lastcy 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 工厂模式有三种: 1,简单工厂模式(静态工厂) 这个模式很好理解,将创建不同实现类的判断放在工厂中,写成一个静态方法用来返回实现类的实例,针对传入的不同条件返回不同的实例对象 优点:使用简单 缺点:每次需要扩展新的实现,必须在工厂里新增类型判断,不符合开闭原则。 2,工厂方法模式 抽象出一个工厂接口 阅读全文
posted @ 2019-03-24 16:13 lastcy 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 目的:提高代码的复用性,拓展性,降低代码间的耦合度。 示例:就以鸭子举例 1.将类之间的共性定义在父类之中。 鸭子都会游泳 2.将子类一定有的功能(不同子类实现方式不一样)写成抽象方法在父类中。 不同鸭子颜色不一样 3.将子类不一定有的方法单独写成接口。 比如不是所有鸭子都会飞(比喻不太恰当,理解含 阅读全文
posted @ 2019-03-20 23:29 lastcy 阅读(106) 评论(0) 推荐(0) 编辑