shiro实践 实践这几张图能实现的功能有哪些: 具体的架构图: 官网找例子https://shiro.apache.org/ Integrations - spring 页面中有连接是连接到github。 https://github.com/apache/shiro/tree/main/samples 这是官方提供的例子。 main方法使用参考 https://github.com/apache/s 2022-05-18 权限框架 #shiro
redisson简介及分布式锁 redissonRedisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。它不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务。其中包括(BitSet, Set, Multimap, SortedSet, Map, List, Queue, BlockingQueue, Deque, BlockingDeque, Semaph 2022-05-17 redis #redis
Redis之1持久化 redis为什么要持久化1.redis做为数据库使用时,数据库必须提供持久化特性; 2.redis做为缓存使用时,持久化缓存数据: redis崩溃时重新加载持久化的数据; redis迁移 redis支持的两种持久化方式RDB(Redis Database Backup file)属于全量数据备份,备份的是数据 save 这个是阻塞的。一般在关机维护时使用。 bgsave 这个是由fork( 2022-05-17 redis #redis
Redis之2单点到集群 单机、单节点、单实例有什么问题? 单点故障 容量有限 压力 redis sentinel(哨兵)可以解决:单点故障、压力(连接或读) 选举当redis集群的主节点故障时,Sentinel集群将从剩余的从节点中选举一个新的主节点,有以下步骤: 故障节点主观下线 故障节点客观下线 Sentinel集群选举Leader Sentinel Leader决定新主节点 选举过程1、主观下线Sentine 2022-05-17 redis #redis
Redis之3过期键的删除策略 Redis的过期键的删除策略Redis是key-value数据库,我们可以设置Redis中缓存的key的过期时间。 Redis的过期策略就是指当Redis中缓存的key过期了,Redis如何处理。 通用的过期策略定时过期每个设置过期时间的key都需要创建一个定时器,到过期时间就会立即清除。该策略可以立即清除过期的数据,对内存很友好;但是会占用大量的CPU资源去处理过期的数据,从而影响缓存的响应时间 2022-05-17 redis #redis
redis之4缓存雪崩与缓存击穿与缓存穿透 前置Mysql 做数据库 redis做缓存 缓存击穿什么是缓存击穿单个key过期,高并发访问这个key, 高并发直接访问数据库。 解决方案分布式锁只让一个请求去访问数据库 缓存穿透什么是缓存穿透简单描述:从业务接收查询的是你系统根本不存在的数据 复杂描述:缓存穿透是指用户查询数据,在数据库没有,自然在缓存中也不会有。这样就导致用户查询的时候, 在缓存中找不到对应key的value,每次都要去数 2022-05-17 redis #redis
redis之5如何保证数据库与缓存的数据一致性 前置Mysql 做数据库 redis做缓存 如何保证数据库与缓存的数据一致性?cache aside pattern 1.命中:程序先从缓存中读取数据,如果命中,则直接返回 2.失效:程序先从缓存中读取数据,如果没有命中,则从数据库中读取,成功之后将数据放到缓存中 3.更新:程序先更新数据库,在删缓存。 先更新数据库,再删除缓存, 是不是就没有问题?假设这会有两个请求,一个请求A做查询操作,一 2022-05-17 redis #redis
redis6.0安装 下载安装123wget http://download.redis.io/releases/redis-6.0.6.tar.gztar xzf redis-6.0.6.tar.gzmv redis-6.0.6 /usr/local/redis 安装编译时需要的软件 1yum -y install gcc automake autoconf libtool make 安装gcc 12345678 2022-05-17 redis #redis
redis底层数据结构 参考https://blog.csdn.net/Me_xuan/article/details/124260839 前言redis是通过对象来表示存储的数据的,redis 也是键值对存储的方式,那么每存储一条数据,redis至少会生成2个对象,一个是redisObject,用来描述具体数据的类型的,比如用的是那种数据类型,底层用了哪种数据结构,还有一个对象就是具体存储的数据。 这个存储对象数据就是 2022-05-17 redis #redis
redis架构及为什么快 基于内存实现Redis的操作都是基于内存的,CPU不是 Redis性能瓶颈,,Redis的瓶颈是机器内存和网络带宽。在计算机的世界中,CPU的速度是远大于内存的速度的,同时内存的速度也是远大于硬盘的速度。redis的操作都是基于内存的,绝大部分请求是纯粹的内存操作,非常迅速。 单线程操作使用单线程可以省去多线程时CPU上下文会切换的时间,也不用去考虑各种锁的问题,不存在加锁释放锁操作,没有死锁问题 2022-05-17 redis #redis