- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 深入浅出限流之Sentinel
在系统/服务的实例数一定的前提下,系统/服务的处理能力是有限的,但是用户的流量具备随机性,在一天的任意一段时间内都随时可能会发生激增流量,且该流量远远超过了系统能够负载的流量,在这种情况下如果我们Do Nothing,则带来的后果就是系统/服务宕机,而且你不断重启或者增加机器扩容对这种情况可能都无效,此时就需要对流量进行整形,进行限流,让系统/服务负载在一定合理范围内。当有请求到来时先放到木桶中,处理请求的worker以固定的速度从木桶中取出请求进行相应。
2022-09-01 19:42:32 728 1
原创 Cookie和Session傻傻分不清
HTTPHTTP 协议是浏览器与服务器之间的数据传送协议。作为应用层协议,HTTP 是基于 TCP/IP 协议来传递数据的(HTML 文件、图片、查询结果等),HTTP 协议不涉及数据包(Packet)传输,主要规定了客户端和服务器之间的通信格式。HTTP 请求数据由三部分组成,分别是请求行、请求报头、请求正文。当这个 HTTP 请求数据到达 Tomcat 后,Tomcat 会把 HTTP 请求数据字节流解析成一个 Request 对象,这个 Request 对象封装了 HTTP 所有的请求信息。接着
2022-06-22 14:26:21 135
原创 为什么单线程Redis能那么快
为什么单线程Redis能那么快?一方面,Redis 的大部分操作在内存上完成,再加上它采用了高效的数据结构,例如哈希表和跳表,这是它实现高性能的一个重要原因。另一方面,就是 Redis 采用了多路复用机制,使其在网络 IO 操作中能并发处理大量的客户端请求,实现高吞吐率。接下来,我们就重点学习下多路复用机制。 Redis 是单线程,主要是指 Redis 的网络 IO 和键值对读写是由一个线程来完成的,这也是 Redis 对外提供键值存储服务的主要流程。但 Redis 的其他功能,比如持久化、异步删除
2022-05-05 10:54:30 197
原创 Redis底层数据结构
Redis数据结构一、基本数据结构常见数据结构:String(字符串)、List(列表)、Hash(哈希)、Set(集合)和 Sorted Set(有序集合) String 类型的底层实现只有一种数据结构,也就是简单动态字符串。而 List、Hash、Set 和 Sorted Set 这四种数据类型,都有两种底层实现结构。通常情况下,我们会把这四种类型称为集合类型,它们的特点是一个键对应了一个集合的数据。 压缩列表和跳表我们平时接触得可能不多,但它们也是 Redis 重要的数据结构,需要重
2022-04-25 16:50:01 1318
原创 哨兵机制与哨兵集群
哨兵机制与哨兵集群哨兵机制的基本流程 哨兵其实就是一个运行在特殊模式下的 Redis 进程,主从库实例运行的同时,它也在运行。哨兵主要负责的就是三个任务:监控、选主(选择主库)和通知。监控哨兵进程在运行时,周期性地给所有的主从库发送 PING 命令,检测它们是否仍然在线运行,规定时间内没有响应则标记为“下线状态”。选主哨兵就需要从很多个从库里,按照一定的规则选择一个从库实例,把它作为新的主库。通知 会把新主库的连接信息发给其他从库,让它们执行 replicaof 命令
2022-04-22 09:37:51 719
原创 宕机后,Redis如何实现快速恢复之RDB
宕机后,Redis如何实现快速恢复? 上次学习了Redis 持久化机制AOF,今天学习另一种机制:**内存快照。**用 AOF 方法进行故障恢复的时候,需要逐一把操作日志都执行一遍。如果操作日志非常多,Redis 就会恢复得很缓慢,影响到正常使用。所谓内存快照,就是指内存中的数据在某一个时刻的状态记录,在做数据恢复时,我们可以直接把 RDB 文件读入内存,很快地完成恢复。Redis 提供了两个命令来生成 RDB 文件,分别是 save 和 bgsave。save:在主线程中执行,会导致阻塞;
2022-04-20 17:30:40 1881
原创 MyBatis快速入门,保姆级教学
1、概念持久层的框架,2、快速入门(1)添加MyBatis的坐标 <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis}</version> </dependency> <!-- MyBatis整合Spri
2021-10-21 19:12:28 187
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人