
中间件
Andrew_37
对自己学过的知识,进行整理总结。
展开
-
mysql连接池
一、mysql连接池 步骤: 1、初始化连接,初始化的连接数,可以参考公式: 连接数 = (CPU核数 * 2) + 有效的磁盘数。 一个4核i7的处理器,它的数据库连接数可以设置为 4*2+1 = 9 2、线程池从连接池里拿到连接,这个过程是加锁的 3、使用连接,执行sql操作 4、处理完sql之后,将连接放回到连接池里 注意的点: a) mysql的重连 在初始化的时候,需要设置mysql_option函数的,重连参数。之后,在操作数据库的每个接口中,需要加入mysql_ping, 检查连接是否正常。原创 2021-10-20 22:23:25 · 433 阅读 · 0 评论 -
分布式锁的实现与原理
1、基于数据库实现的分布式锁 缺点: a. 因为数据库需要落到磁盘上,有磁盘IO的消耗,所以性能没有下面两个高。 b. 数据库没有定时释放锁,如果获得锁的进程挂了,那么就会造成死锁。 2、基于缓存redis实现的分布式锁 a. 通过setnx来实现分布式锁。 setnx是在key值不存在的时候,才能设置成功的。 b. redis数据库可以给超过设置的锁,进行释放,通过setex. c. setnx 和setex 需要合二为一,是原子操作。在redis2.8之后的set,操作,可以通过设置参数,“ex”, “原创 2021-10-20 22:13:07 · 191 阅读 · 0 评论