摘要: 计数器算法: 原理:在指定时间周期内累加访问次数,达到设定的阈值时,触发限流策略。下一个时间周期进行访问时,访问次数清零。 实现:此算法无论是在单机还是分布式环境下实现都非常简单,使用redis的原子自增性,再结合key的过期时间,即可轻松实现。 缺点:临界问题,在两个周期的临界点处分别达到接近阈值 阅读全文
posted @ 2023-03-01 13:39 夜雨声入眠 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 读写分离分散了数据库读写的压力,但没有分散存储的压力。 数据量达到千万甚至上亿的时候,单台数据库服务器的存储能力会成为系统的瓶颈,主要体现在: 1. 数据量太大,读写的性能会下降,即使有索引,索引也会变的很大,性能同样会下降; 2. 数据文件会变的很大,数据库备份和恢复会耗费很长的时间; 3. 数据 阅读全文
posted @ 2022-11-24 16:42 夜雨声入眠 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 基本原理:将数据库的读写操作分散到不同的节点上。 基本实现: 1. 数据库服务器搭建主从集群,一主一从,一主多从都可以; 2. 数据库主机负责读写操作,数据库从机只负责读操作; 3. 数据库主机通过复制将数据同步到从机,每台数据库服务器都存储了所有的业务数据; 4. 业务服务器将数据库写操作发送给数 阅读全文
posted @ 2022-11-23 14:31 夜雨声入眠 阅读(160) 评论(0) 推荐(0) 编辑
摘要: innodb引擎索引数据结构:B+树,原型为N叉树,在innodb中N大约为1200,树高为4时,大约可以存1200的3次方的数据,约为17亿(树根的数据块一般在内存中,10亿数据的表上查一个数值,只需要查三次磁盘,且树的第二层大概率也在内存中,访问磁盘的数量又有减少) 主键索引:整行数据存在叶子节 阅读全文
posted @ 2022-11-23 14:00 夜雨声入眠 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 这三个问题的发生,会导致大量的请求直接积压到数据库,如果并发量很大,则可能会导致数据库宕机或故障。 缓存雪崩 描述:大量的请求无法在redis缓存中进行处理而被发送到数据库,导致数据库压力陡增。 产生的原因: 1. redis缓存中大量的数据同时到期,导致大量请求无法在缓存中得到处理。 解决方案: 阅读全文
posted @ 2022-11-18 14:16 夜雨声入眠 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 首先关于两者数据的一致性包含有两种情况: (1)缓存中有数据时,那数据库中的数据要和缓存中的数据相同; (2)缓存中没有数据时,数据库中的数据必须是最新的。 如果不符合以上两种情况,就属于缓存和数据库数据不一致的问题。 缓存不同的读写模式,所对应的不一致问题也会有所差异,缓存的读写模式主要有两种,读 阅读全文
posted @ 2022-11-17 13:39 夜雨声入眠 阅读(781) 评论(0) 推荐(0) 编辑
摘要: Topic:发布订阅的对象称为主题(topic),可以为每个应用,每个业务甚至每个类创建专属的主题。 clients:生产者和消费者统称为clients。 Producer:向主题发布消息的客户端应用称为生产者,生产者程序通常不断的向一个或多个主题发送消息。 Consumer:订阅这些主题消息的客户 阅读全文
posted @ 2022-08-29 19:08 夜雨声入眠 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 给出一个区间的集合,请合并所有重叠的区间。 示例 1: 示例 2: 阅读全文
posted @ 2019-03-06 16:48 夜雨声入眠 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 示例 1: 示例 2: 阅读全文
posted @ 2019-03-03 20:31 夜雨声入眠 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 示例 1: 解题思路:先写出其转置矩阵,然后每行列表反转 给定一个包含 m x n 个元素的矩阵(m 行, n 列),请 阅读全文
posted @ 2019-03-03 19:53 夜雨声入眠 阅读(578) 评论(0) 推荐(0) 编辑