摘要: 什么是并发竞争比如我们现在同一个缓存key,test_key = v1。现在有A、B、C三个系统几乎同时来更新,那么原本顺序应该是A系统更新为v2、B系统更新为v3、C系统更新为v4。但是因为A系统没有竞争过来,变成了B、C先更新,也就是v1->v3->v4->v2,最后的值应该是v4现在确是v2。 阅读全文
posted @ 2023-02-24 17:47 sword0077 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 一、键的过期时间Redis可以为每一个键设置过期时间,当键过期之后,会自动删除该键。对于散列表这种容器,只能为整个键设置过期时间(整个散列表),而不能为键里面的单个元素设置过期时间。 二、数据淘汰策略可以设置内存最大使用量,当内存使用量超出的时候,会执行数据淘汰策略。Redis具体有6种淘汰策略 v 阅读全文
posted @ 2023-02-24 17:33 sword0077 阅读(475) 评论(0) 推荐(0) 编辑
摘要: 根据 Gartner 的说法,微服务是云开发的新应用平台。微服务是独立部署和管理的,一旦应用实现在容器内,它们与底层操作系统的交互很少。因此,如果你希望把微服务添加到自己的技术栈中,并想要了解与之相关的技能,那么现在正是潜心研究的时候。 在本文中,我收集了面试官最常问到的问题。 说说微服务架构的优势 阅读全文
posted @ 2023-02-24 11:34 sword0077 阅读(131) 评论(0) 推荐(0) 编辑
摘要: TCP连接状态 图1是TCP三次握手、数据传输、四次挥手三个阶段的状态转移图,状态说明如下: LISTEN:侦听来自客户端的TCP端口的连接请求 SYN-SENT:再发送连接请求后等待匹配的连接请求(如果有大量这样的状态包,检查是否中招了) SYN-RCVD:再收到和发送一个连接请求后等待对方对连接 阅读全文
posted @ 2023-02-24 07:32 sword0077 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 1、第三次握手是为了防止失效的连接请求到达服务器,让服务器错误打开连接。 2、换个易于理解的视角来看为什么要 3 次握手。 客户端和服务端通信前要进行连接,“3次握手”的作用就是双方都能明确自己和对方的收、发能力是正常的。 第一次握手:客户端发送网络包,服务端收到了。这样服务端就能得出结论:客户端的 阅读全文
posted @ 2023-02-24 07:18 sword0077 阅读(68) 评论(0) 推荐(0) 编辑
摘要: TIME_WAIT状态之所以存在,是为了保证网络的可靠性。首先,这个是TCP状态转换图里面的某个状态,这个可以参考unix网络编程。 从图中可以看出,在一个客户端与服务器通信的过程当中,主动关闭的一方会进入这个状态。有以下作用(原因): 1.为实现TCP全双工连接的可靠释放 当服务器先关闭连接,如果 阅读全文
posted @ 2023-02-24 06:40 sword0077 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 进程间的通信方式三种分别是消息队列通信、信号量通信和共享内存通信,还有管道、Scoket。下面我们具体来了解一下这5种方式。 1、消息队列是在两个不相关的进程之间传递数据的一种简单高效的方式,独立于发送进程和接受进程而存在。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺 阅读全文
posted @ 2023-02-24 06:16 sword0077 阅读(3362) 评论(0) 推荐(0) 编辑
摘要: 进程:指在系统中正在运行的一个应用程序;程序一旦运行就是进程;或者更专业化来说:进程是指程序执行时的一个实例,即它是程序已经执行到课中程度的数据结构的汇集。从内核的观点看,进程的目的就是担当分配系统资源(CPU时间、内存等)的基本单位。 线程:系统分配处理器时间资源的基本单元,或者说进程之内独立执行 阅读全文
posted @ 2023-02-24 06:12 sword0077 阅读(26) 评论(0) 推荐(0) 编辑