《Apache Shiro 源码解析》- 8. 缓存
8.缓存 本章将深入探讨 Shiro 的缓存架构,并对核心组件的源代码进行解析。 8.1 Shiro 为什么引入缓存机制 随着用户规模的不断扩大,认证、授权和加密等模块的调用次数会迅速增加。例如,当每秒有 100 万用户尝试登录系统时,认证模块每秒会被调用 100 万次。此时, CPU 和 Memory 都会飙升,性能问题将不可避免地浮现出来。 那么,如何在架构层面解决这些可能出现的性能瓶颈呢?最常见的解决方案就是引入缓存机制。有很多数据实际上并不需要在每次请求中都重新计算,我们可以将计算结果缓存起来,至少在一个特定的时间段以内,都可以直接从缓存中捞出数据,从而显著降低系统资源的消耗。 提升性能正是 Shiro 框架引入缓存机制的一个重要原因。 在 Shiro 中,缓存主要用于以下 3 个方面: 认证缓存:存储用户的认证信息,避免每次请求都需要重新认证。 授权缓存:存储用户的角色和权限信息,避免每次访问资源都去查询数据库获取权限。 Session 缓存: 用来缓存会话信息。 注意:默认情况下,Shiro 并不会启用任何缓存,开发者需要在 ShiroConfig.java 中显式配置缓存...
