Study notes
09
19
Java基础知识大全(二) Java基础知识大全(二)
面向对象和面向过程的区别面向过程编程(Procedural-Oriented Programming,POP)和面向对象编程(Object-Oriented Programming,OOP)是两种常见的编程范式,两者的主要区别在于解决问题的
2024-09-19
19
Java基础知识大全(一) Java基础知识大全(一)
JDKJDK(Java Development Kit)是一个功能齐全的 Java 开发工具包,供开发者使用,用于创建和编译 Java 程序。它包含了 JRE(Java Runtime Environment),以及编译器 javac (用
2024-09-19
19
现代化的 API 设计指南 现代化的 API 设计指南
如何写出易于维护的代码,阻止犯错? 类型就是最好的注释! Type is all you need 结构体传参123void foo(string name, int age, int phone, int address);foo(&qu
2024-09-19
19
17
事务机制:Redis能实现ACID属性吗? 事务机制:Redis能实现ACID属性吗?
事务是数据库的一个重要功能。所谓的事务,就是指对数据进行读写的一系列操作。事务在执行时,会提供专门的属性保证,包括原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability),
2024-09-17
17
如何使用Redis实现分布式锁? 如何使用Redis实现分布式锁?
上节课,我提到,在应对并发问题时,除了原子操作,Redis 客户端还可以通过加锁的方式,来控制并发写操作对共享数据的修改,从而保证数据的正确性。 但是,Redis 属于分布式系统,当有多个客户端需要争抢锁时,我们必须要保证,这把锁不能是某个
2024-09-17
17
无锁的原子操作:Redis如何应对并发访问? 无锁的原子操作:Redis如何应对并发访问?
我们在使用 Redis 时,不可避免地会遇到并发访问的问题,比如说如果多个用户同时下单,就会对缓存在 Redis 中的商品库存并发更新。一旦有了并发写操作,数据就会被修改,如果我们没有对并发写请求做好控制,就可能导致数据被改错,影响到业务的
2024-09-17
17
缓存异常(下):如何解决缓存雪崩、击穿、穿透难题? 缓存异常(下):如何解决缓存雪崩、击穿、穿透难题?
上节课,我们学习了缓存和数据库的数据不一致问题和应对方法。除了数据不一致问题,我们常常还会面临缓存异常的三个问题,分别是缓存雪崩、缓存击穿和缓存穿透。这三个问题一旦发生,会导致大量的请求积压到数据库层。如果请求的并发量很大,就会导致数据库宕
2024-09-17
17
5 / 11