
redis
文章平均质量分 75
学习redis
爱我所爱0505
喜欢编程
展开
-
多级缓存框架<二>
目录一、Spring缓存注解1. 注解@Cacheable2. 注解@CachePut3. 注解@CacheEvict二、接口Cache三、接口CacheManager四、缓存封装类图五、参考资料本章节主要介绍Spring3.1后缓存注解使用和主要接口,及自己封装缓存,来实现一级、二级缓存。一、Spring缓存注解1. 注解@Cacheable方法执行前:先从cache获取,若没有缓存再执行方法方法执行后:根据condition判定参数是...原创 2021-08-18 17:43:07 · 225 阅读 · 0 评论 -
多级缓存框架<一>
一、概览缓存是高并发下的必备技术之一。本章节使用ehcache作为一级缓存、redis集群作为二级缓存。如下图所示,获取缓存数据流程图。自己封装缓存jar包cache-core,redisson访问redis集群。ehcache缓存是应用内存级别缓存,也是本地缓存。而redis集群为内存缓存,也是分布式缓存。DB数据存入磁盘,其查询速率远不及ehcache、redis,但DB是数据的源头。所以缓存中数据同步,即:及时更新缓存数据尤为重要。上图绿色部分”同步到red...原创 2021-08-16 21:17:56 · 478 阅读 · 0 评论 -
Redis —— Cluster集群搭建<三>
目录一、集群扩容step1:创建节点并启动step2:集群中添加节点step3:新节点分配slotstep4:新主节点添加从节点二、添加从节点三、验证主从切换step1:主节点6388下线step2:查看节点信息step3:启动6388节点step4:查看节点信息四、主节点删除step1:重新分配slotstep2:删除主节点step3:slot是否均匀五、参考资料本章节主要是cluster集群验证,如集...原创 2021-08-13 15:06:36 · 362 阅读 · 0 评论 -
Redis —— Cluster集群搭建<二>
本章完成springboot项目连接cluster集群,使用redisson作为集群的客户端连接集群服务。redis集群的搭建参考:Cluster集群搭建<一>。step1:依赖的jar包<!-- redisson --><dependency> <groupId>org.redisson</groupId> <artifactId>redisson-spring-boot-starter<...原创 2021-08-10 21:26:38 · 517 阅读 · 0 评论 -
Redis —— Cluster集群搭建<一>
目录step1:解压redis-6.0.6.tar.gzstep2:编译makestep3:复制编译后的文件step4:修改配置文件step5:复制配置文件并修改step6:不同配置启动redis服务step7:创建cluster集群step8:查看集群step9:验证集群step10:创建启动脚本step11:创建停止脚本搭建redis的cluster集群:2台linux系统的服务器(docker实现),每台服务器创建3个redis服务器,共...原创 2021-08-10 20:52:49 · 701 阅读 · 0 评论 -
Redis —— LRU和LFU
目录一、过期策略二、maxmemory策略三、LRU算法四、LFU算法一、过期策略如上图所示,需注意问题:1. 两种过期策略同时存在:定时删除是基于redis异步线程的定时任务serverCron,完成对过期key的集中删除。默认hz配置是:定时任务每秒10次扫描,每次不能超出25ms# redis定时删除过期key,每秒10次hz 10# 启动动态hz,查看客户端连接数和CPU使用等情况,动态改变hz值dynamic-hz yes2. 定时删除的循环:大量ke原创 2021-08-10 18:05:22 · 1327 阅读 · 2 评论 -
Redis —— 集群模式
一、哨兵模式如图所示,需注意问题:1. 哨兵:zookeeper实现哨兵集群对redis节点健康检查、主从切换2. 客户端首次请求:首次请求从哨兵集群获取主从节点地址,然后根据查询地址再请求数据3. 主从切换:主节点down,则从节点升为主节点,旧有主节点恢复后变成从节点,完成主从切换二、Codis模式如图所示,需注意问题:1. Codis集群:转发客户端发来的指令并返回执行结果,是中间件(类似ngnix)2. Codis:无状态去中心化的中间件,..原创 2021-08-09 21:34:46 · 4725 阅读 · 1 评论 -
Redis —— 主从复制
目录一、CAP原理二、增量同步三、快照同步四、无盘复制一、CAP原理分布式系统理论基石是CAP原理,保证可用性的前提下,才有了一致性。主从复制目的是为了数据的最终一致性,但是无法达到严格一致性,只是尽量做到数据不丢失。C:Consistent(一致性):各节点数据相同A:Avaliability(可用性):节点挂掉,整个服务可用P:Partition tolerance(分区容忍性):不同分区数据差别不大网络分区:网络断开导致各节点数据不一致,导致了C与A两难全。原创 2021-08-09 16:40:12 · 317 阅读 · 0 评论 -
Redis —— 持久化RDB和AOF
目录一、RDB快照原理二、AOF日志原理三、RDB&AOF比较一、RDB快照原理以下是RDB相关的配置参数:################################ SNAPSHOTTING ################################# 内存数据持久化到磁盘# 触发持久save 900 1 # 900s内至少1个key被修改,触发保存save 300 10 # 300s内至少15个key被修改,触发保存s原创 2021-08-07 21:55:17 · 259 阅读 · 0 评论 -
Redis —— 海量扫描Scan
目录一、scan扫描原理二、scan测试一、scan扫描原理如上图所示,需注意问题:1. scan与keys:复杂度都是O(n),但scan的游标分步扫描。若是生产海量扫描,keys一次获取所有正则的key,造成服务卡顿,所以避免使用keys操作2. scan命令中count:不是元素的数量,而是slot数量,从而导致每次分步遍历获取元素数量不同3. 遍历顺序:高进位加法,意思是:扩容时,从高位进位,向右遍历。4. 扩容缩容:每次扩容都是现有空间2倍,即:2^(n+1..原创 2021-08-07 17:23:47 · 2736 阅读 · 0 评论 -
Redis —— 分布式锁
一、Redis原生分布式锁如上图所示,需注意问题:1. 出现死锁的根本原因:setnx + expire指令组合不是原子操作(lua脚本解决)2. 超时问题:业务执行时间 > key的失效时间 导致:当前线程业务没有执行完,锁已经释放,而另一线程则加锁3. 锁冲突处理:根据业务需求选择 a. 客户端发起重试:抛出异常,客户端重新请求(体验不友好) b. 服务端发起重试...原创 2021-08-06 17:11:42 · 212 阅读 · 0 评论 -
Redis深度历险:核心原理和应用实践 —— 总结
Redis深度历险 —— 章节概览原创 2021-08-04 14:34:45 · 325 阅读 · 0 评论