上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 67 下一页
摘要: 问题就是找到字符串里不包括重复字符的最长子字符串。 第一种: <?php $string = "abcdaefaedkqatlmtx"; function test($string){ $len = strlen($string); $arr = []; for ($i = 0; $i <= $le 阅读全文
posted @ 2020-06-30 00:15 温柔的风 阅读(638) 评论(0) 推荐(0) 编辑
摘要: 消息为什么会丢失 消息从被写入到消息队列,到被消费者消费完成,这个链路上会有哪些地方存在丢失消息的可能呢?其实,主要存在三个场景: 消息从生产者写入到消息队列的过程。 消息在消息队列中的存储场景。 消息被消费者消费的过程。 1.在消息生产的过程中丢失消息 在这个环节中主要有两种情况。 首先,消息的生 阅读全文
posted @ 2020-06-28 00:17 温柔的风 阅读(901) 评论(0) 推荐(0) 编辑
摘要: 削去秒杀场景下的峰值写流量 而在秒杀场景下,高并发的写请求并不是持续的,也不是经常发生的,而只有在秒杀活动开始后的几秒或者十几秒时间内才会存在。为了应对这十几秒的瞬间写高峰,将秒杀请求暂存在消息队列中,然后业务服务器会响应用户“秒杀结果正在计算中”,释放了系统资源之后再处理其它用户的请求。 在后台启 阅读全文
posted @ 2020-06-27 19:40 温柔的风 阅读(5067) 评论(0) 推荐(0) 编辑
摘要: 缓存穿透其实是指从缓存中没有查到数据,而不得不从后端系统(比如数据库)中查询的情况。 缓存穿透的解决方案 举例:如果要读取一个用户表中未注册的用户,按照旁路缓存策略,我们会先读缓存,再穿透读数据库。由于用户并不存在,所以缓存和数据库中都没有查询到数据,因此也就不会向缓存中回种数据(也就是向缓存中设置 阅读全文
posted @ 2020-06-27 18:45 温柔的风 阅读(626) 评论(0) 推荐(0) 编辑
摘要: 为了增大缓存系统架构的高可用,增加缓存的命中率,尽量避免请求穿透缓存进入后端数据库,主要选择的方案有客户端方案、中间代理层方案和服务端方案三大类: 客户端方案就是在客户端配置多个缓存的节点,通过缓存写入和读取算法策略来实现分布式,从而提高缓存的可用性。 中间代理层方案是在应用代码和缓存节点之间增加代 阅读全文
posted @ 2020-06-27 15:37 温柔的风 阅读(652) 评论(0) 推荐(0) 编辑
摘要: 旁路缓存策略 在更新数据时不更新缓存,而是删除缓存中的数据,在读取数据时,发现缓存中没了数据之后,再从数据库中读取数据,更新到缓存中。 这是使用缓存最常见的策略,旁路缓存策略,这个策略数据以数据库中的数据为准,缓存中的数据是按需加载的。它可以分为读策略和写策略,其中读策略的步骤是: 从缓存中读取数据 阅读全文
posted @ 2020-06-27 14:50 温柔的风 阅读(629) 评论(1) 推荐(0) 编辑
摘要: 使用NoSQL提升写入性能 数据库系统大多使用的是传统的机械磁盘,对于机械磁盘的访问方式有两种:一种是随机IO;另一种是顺序IO。随机IO就需要花费时间做昂贵的磁盘寻道,一般来说,它的读写效率要比顺序IO小两到三个数量级,所以我们想要提升写入的性能就要尽量减少随机IO。 以MySQL的InnoDB存 阅读全文
posted @ 2020-06-26 19:54 温柔的风 阅读(464) 评论(0) 推荐(0) 编辑
摘要: 在单库单表的场景下,我们可以使用数据库的自增字段作为ID,因为这样最简单,对于开发人员来说也是透明的。但是当数据库分库分表后,使用自增字段就无法保证ID的全局唯一性了。 先说一下UUID,UUID(Universally Unique Identifier,通用唯一标识码)不依赖于任何第三方系统,所 阅读全文
posted @ 2020-06-26 16:16 温柔的风 阅读(714) 评论(0) 推荐(0) 编辑
摘要: 主从读写分离 其实,大部分系统的访问模型是读多写少,读写请求量的差距可能达到几个数量级,那么这就是我们所说的主从读写分离。 主从复制的原理这里不再阐述,本人博客里有关于Mysql主从的配置文章,当然里面也介绍了原理。 做了主从复制之后,就可以在写入时只写主库,在读数据时只读从库,这样即使写请求会锁表 阅读全文
posted @ 2020-06-25 20:57 温柔的风 阅读(654) 评论(0) 推荐(0) 编辑
摘要: 数据库的调用方式是先获取数据库的连接,然后依靠这条连接从数据库中查询数据,最后关闭连接释放数据库资源。这种调用方式下,每次执行SQL都需要重新建立连接,频繁地建立数据库连接耗费时间长导致了访问慢的问题。 那么为什么频繁创建连接会造成响应时间慢呢?来看一个实际的测试。 我用"tcpdump -i bo 阅读全文
posted @ 2020-06-25 19:59 温柔的风 阅读(1088) 评论(0) 推荐(0) 编辑
上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 67 下一页