上一页 1 2 3 4 5 6 ··· 9 下一页
摘要: ### 占用资源成功,没有竞争的情况 1. 入口是 `java.util.concurrent.locks.ReentrantLock#lock` ```java public void lock() { sync.lock(); } ``` - 可以知道调用了 sync 属性的 lock 方法 - 阅读全文
posted @ 2023-07-12 10:38 黄光跃 阅读(3) 评论(0) 推荐(0) 编辑
摘要: - ReentrantLock 类内部总共存在 Sync、NonfairSync、FairSync 三个类 - NonfairSync 与FairSync 类继承自 Sync 类 - Sync类继承自 AbstractQueuedSynchronizer 抽象类 - 使用起来很简单 ```java 阅读全文
posted @ 2023-07-12 10:02 黄光跃 阅读(6) 评论(0) 推荐(0) 编辑
摘要: ### 为什么需要持久化,持久化是什么 redis 是基于内存的所以速度快,没有与磁盘交互。但是缺点就是断电或宕机数据就没了,这是不可接受的。持久化就是把内存的数据也存在磁盘上,用于 redis 重启后时恢复数据。两种方式 RDB 和 AOF ### RDB 快照操作,持久化当前内存中的数据。分为手 阅读全文
posted @ 2023-07-10 15:52 黄光跃 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 占坑 阅读全文
posted @ 2023-07-10 15:52 黄光跃 阅读(2) 评论(0) 推荐(0) 编辑
摘要: - 使用命令 `multi` 表示开启一个事务,`exex` 表示提交事务,`discard` 表示放弃事务 - 分为三个阶段:开启事务、执行命令(组队过程)、提交事务/放弃事务 - 如果组队过程中有一个操作失败,整个事务失败 - 如果提交事务时有操作失败,不影响整体事务(非原子性) - redis 阅读全文
posted @ 2023-07-10 15:52 黄光跃 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 占坑 阅读全文
posted @ 2023-07-10 15:51 黄光跃 阅读(0) 评论(0) 推荐(0) 编辑
摘要: Redis共支持八种淘汰策略,分别是 noeviction、volatile-random、volatile-ttl、volatile-lru、volatile-lfu、allkeys-lru、allkeys-random 和 allkeys-lfu 策略 ### 策略分类 + 不淘汰 noevic 阅读全文
posted @ 2023-07-10 15:51 黄光跃 阅读(15) 评论(0) 推荐(0) 编辑
摘要: + master 负责写入,slave 负责读,读写分离来提高并发 + 一主多从,从服务器数量不限制,但是主服务器只能一台(如果 master 为多台,多个 master 都修改了同一个 key,不晓得以哪个为准) + salve 挂了会被自动剔除,master 挂了需要手动把 salve 升级为新 阅读全文
posted @ 2023-07-10 15:51 黄光跃 阅读(3) 评论(0) 推荐(0) 编辑
摘要: ### 缓存穿透(缓存和数据库中都没有的数据) 这种情况,如果不加以处理,请求必然打在数据库,如果请求量过大,DB 就挂了。很容易被恶意攻击,比如频繁查询 id 是 -1 的数据 #### 解决方案 1. 接口层增加校验,如用户鉴权校验,id做基础校验,id<=0的直接拦截 2. 从缓存取不到的数据 阅读全文
posted @ 2023-06-28 17:55 黄光跃 阅读(11) 评论(0) 推荐(0) 编辑
摘要: + 集群模式可以分布式存储数据,比如一共 n 条数据,3 个节点,每个节点只存储 n/3 条数据(主从模式是每台服务器都存储了完整的数据) + 主从模式(哨兵也算主从)下,因为只有一个主机,所以当写操作过多时主机压力也会比较大 ### 环境搭建 > 跟前面主从哨兵一样,还是在一台 linux 上部署 阅读全文
posted @ 2023-06-28 17:55 黄光跃 阅读(17) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 9 下一页