缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会生效,这些请求都会打到数据库。最终造成服务宕机。

例如,某位黑客故意制造了大量无效的 id 发往服务端,使得大量请求落到数据库上,数据库也没有查到对应的数据,此操作对于数据库造成了大量的压力。

阅读全文 »

Redis 是一个 key-value 数据库,key 一般为 String 类型,value类型多种多样。

部分 Redis 数据结构如下:

数据类型举例类型
StringHello world基本类型
Hash{name: "gtn1024", age: 18}基本类型
List[A -> B -> C -> C]基本类型
Set{A, B, C}基本类型
SortedSet{A: 1, B: 2, C: 3}基本类型
GEO{A: (120.3, 30.5) }特殊类型
BitMap110110101110101000特殊类型
HyperLog110110101110101000特殊类型
阅读全文 »

JAX-RS 是 Jakarta RESTful Web Services 的缩写,是 Jakarta EE API 规范,用于构建 RESTful 风格的 Web 服务。

本文通过一个简单的内存版的用户管理系统,介绍 JAX-RS 的基本用法。

阅读全文 »

文件 IO:用于处理数据。将数据保存到文件等其他物理设备上,保证数据可以在断电后持久保存。

阅读全文 »