热文Netty 线程模型

首先,Netty 使用 EventLoop 来处理连接上的读写事件,而一个连接上的所有请求都保证在一个 EventLoop 中被处理,

热文TCP 粘包/拆包的解决办法

发送端给每个数据包添加包首部,首部中应该至少包含数据包的长度,这样接收端在接收到数据后,通过读取包首部的长度字段,便知道每一个数据包的实际长度了。

热文消息的堆积解决思路

如果还没开始投入使用 Kafka,那应该在设计分区数的时候,尽量设置的多点(当然也不要太大,太大影响延迟,具体可以参考我前面提到的文章),从而提升生产和消费的并行度,避免...

热文消息队列的使用场景

校验用户名等信息,如果没问题会在数据库中添加一个用户记录 如果是用邮箱注册会给你发送一封注册成功的邮件,手机注册则会发送一条短信

热文缓存降级

页面降级 在大促或者某些特殊情况下,某些页面占用了一些稀缺服务资源,在紧急情况下可以对其整个降级,以达到丢卒保帅;

热文缓存崩溃

碰到这种情况,一般并发量不是特别多的时候,使用最多的解决方案是加锁排队。 加锁排队只是为了减轻数据库的压力,并没有提高系统吞吐量。

热文Redis 为什么是单线程的

因为 CPU 不是 Redis 的瓶颈。Redis 的瓶颈最有可能是机器内存或者网络带宽。(以上主要来自官方 FAQ)既然单线程容易实现,而且 CPU 不会成为瓶颈,那就...

热文Redis 集群方案与实现

客户端分片 基于代理的分片 路由查询 客户端分片 由客户端决定 key 写入或者读取的节点 包括 Jedis 在内的一些客户端,实现了客户端分片机制

热文Redis 持久化机制

AOF 持久化方式则会记录每一个服务器收到的写操作。在服务启动时,这些记录的操作会逐条执行从而重建出原来的数据。写操作命令记录的格式跟 Redis 协议一致,以追加的方式...

热文Redis 内部结构

Redis 内部使用一个 redisObject 对象来表示所有的 key 和 value。 type :代表一个 value 对象具体是何种数据类型。

热文聊聊 ElasticSearch 使用场景

全文搜索,这个是用的最多的。加上分词插件、拼音插件什么的可以做成强大的全文搜索引擎。 数据库,挺奇葩的用法,因为 ES 存数相同数据,更费空间,

热文倒排索引

倒排索引(英语:Inverted index),也常被称为反向索引、置入档案或反向档案,是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的...

热文聊聊 MongoDB 使用场景

MongoDB 非常适合高伸缩性的场景,它是可扩展性的表结构。基于这点,可以将预期范围内,表结构可能会不断扩展的 MySQL 表结构,通过 MongoDB 来存储,这就可...

热文ObjectId 规则

前四位是时间戳,可以提供秒级别的唯一性。 - 接下来三位是所在主机的唯一标识符,通常是机器主机名的散列值。 - 接下来两位是产生 ObjectId 的 PID,确保同一台...

热文选择合适的数据存储方案

MySQL 是一个最流行的关系型数据库,在互联网产品中应用比较广泛。一般情况下,MySQL 数据库是选择的第一方案,基本上有 80% ~ 90% 的场景都是基于 MySQ...

热文为什么要用 B-Tree

一般来说,索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储的磁盘上。这样的话,索引查找过程中就要产生磁盘 I/O 消耗,相对于内存存取,I

热文数据库索引的原理

数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用 BTree 及其变种 B+Tree。

热文MySQL 遇到的死锁问题

产生死锁的四个必要条件: 互斥条件:一个资源每次只能被一个进程使用。 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。 不剥夺条件:进程已获得的资源...