摘要:
MyBatis 执行器 JDBC 的执行过程分为四步: 获取数据库连接(Connection) 预编译 SQL(PrepareStatement) 设置参数 执行 SQL(ResultSet) MyBatis 提供了执行器 Executor 将这一过程进行封装,对外提供 SqlSession 让用户 阅读全文
摘要:
概述 SpringMVC 中的 MVC 即模型-视图-控制器,该框架围绕一个 DispatcherServlet 改计而成,DispatcherServlet 会把请求分发给各个处理器,并支持可配置的处理器映射和视图渲染等功能 SpringMVC 的工作流程如下所示: 客户端发起 HTTP 请求:客 阅读全文
摘要:
概述 Redis 的发布/订阅是一种消息通信模式:发送者(Pub)向频道(Channel)发送消息,订阅者(Sub)接收频道上的消息。Redis 客户端可以订阅任意数量的频道,发送者也可以向任意频道发送数据。在发送者向频道发送一条消息后,这条消息就会被发送到订阅该频道的客户端(Sub) Redis 阅读全文
摘要:
概述 Redis 支持分布式环境下的事务操作,其事务可以一次执行多个命令,事务中的所有命令都会序列化地顺序执行。事务在执行过程中不会被其他客户端发送来的命令请求打断,服务器在执行完事务中的所有命令之后,才会继续处理其他客户端的其他命令。Redis 的事务操作分为开启事务、命令入队列、执行事务三个阶段 阅读全文
摘要:
概述 ZooKeeper 是一个分布式协调服务,其设计初衷是为分布式软件提供一致性服务。ZooKeeper 提供了一个类似 Linux 文件系统的树形结构,ZooKeeper 的每个节点既可以是目录,也可以是数据,同时 ZooKeeper 提供了对每个节点的监控与通知机制。基于 ZooKeeper 阅读全文
摘要:
概述 Redis 是基于请求/响应协议的 TCP 服务。在客户端向服务器发送一个查询请求后,需要监听 Socket 的返回结果,该监听过程一直阻塞,直到服务器有结果返回。如果一次请求延迟20ms,则多次请求的网络延迟会不断累加。也就是说,Redis 的性能瓶颈主要体现在网络延迟上 Redis 的管道 阅读全文
摘要:
概述 在实际工作中,在关系数据库(MySQL、PostgreSQL)的单表数据量上亿后,往往会出现查询和分析变慢甚至无法执行统计分析的情况。这时就需要将大表拆分为多个小表,将小表分布在多个数据库上,形成一个数据库集群。这样的话,一条 SQL 统计语句就可以在多台服务器上并发执行,然后将执行结果汇总, 阅读全文
摘要:
概述 位图(BitMap)使用二进制的比特位来表示一个数是否存在,比如一个字节占 8 个比特位,这样就能用该字节表示 1-8,对应比特位为 1 表示对应数字存在,为 0 则不存在,大大节约存储空间 位图的 Java 实现 在 java.util 包中有官方的位图实现 BitSet,我们也可以自己实现 阅读全文
摘要:
概述 图是由有穷非空集合的顶点和顶点之间的边组成的集合,通常表示为 G(V,E)。G 表示一个图,V 是 图 G 顶点的集合,E 是图 G 边的集合。在图形结构中,数据之间具有任意联系,任意两个数据之间都可能相关,可用于表示多对多的数据结构 如果从顶点 V1 到 V2 的边没有方向,则称这条边为无向 阅读全文