- 博客(13)
- 收藏
- 关注
原创 Spring Boot 中 Redis 键过期后的处理操作
*** 处理乱码问题// key 序列化 redisTemplate . setKeySerializer(new StringRedisSerializer());// val 序列化 redisTemplate . setValueSerializer(new GenericJackson2JsonRedisSerializer());} }/*** 监听 reids 过期事件} /**
2023-05-05 21:04:19
975
1
原创 Redis 缓存问题
Q2:如果线程 A 加锁成功,锁的过期时间为 10s,但是由于业务复杂,执行时间较长,10s 内线程还没有执行完任务,此时该锁已经过期自动释放掉了(del)。A2.2:为每个线程设置锁的时候,value 值设置为自己线程的 ID,这样在释放锁(del)的时候先查看(get)锁是不是自己的,如果是,然后再进行 del 操作。A2.1:Redission 提供了一个监控锁的看门狗,它的作用就是为锁续时,如果一个拿到锁的线程执行业务代码的时间过长,那么看门狗会帮助线程延长锁的过期时间,锁不会因为过期而被释放。
2023-05-05 20:48:06
225
原创 Redis 的数据结构与基本数据类型
Redis 使用跳跃表作为有序集合键的底层实现之一,如果一个有序集合包含的元素数量比较多,又或者有序集合中元素的成员(member)是比较长的字符串时,Redis 就会使用跳跃表来作为有序集合键的底层实现。整数集合(intset)是集合键(Set 类型的数据)的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素数量不多时,Redis 就会使用整数集合作为集合键的底层实现。,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定的、并且是很小的。
2023-05-05 17:54:48
418
原创 Redis 主从复制
主从复制,是将一台 Redis 服务器的数据,复制到其他的 Redis 服务器。前者称为主节点(Master/Leader),后者称为从节点(Slave/Follower)数据的复制是单向的!只能由主节点复制到从节点(主节点以写为主、从节点以读为主)—— 读写分离。默认情况下,每台 Redis 服务器都是主节点,一个主节点可以有 0 个或者多个从节点,但每个从节点只能有一个主节点。
2023-05-05 11:49:20
130
原创 缓存与数据库双写一致性问题
当该缓存对应的数据需要经过大量的计算过程才能得到时,比如需要访问多张表进行统计计算。那么在写操作中更新缓存的动作将会是一笔不小的开销。【提高响应速度】当写操作较多时,可能也会存在刚更新的缓存还没有被读取到,又再次被更新的情况(这常被称为缓存扰动),显然,这样的更新是白白消耗机器性能的,会导致缓存利用率不高。所以等到读请求未命中缓存时再去更新,也符合懒加载的思路,需要时再进行计算。删除缓存的操作不仅是幂等的,可以在发生异常时重试,而且写-删除和读-更新在语义上更加对称。
2023-05-04 22:57:43
244
原创 Redis 事务
Redis 通过 MULTI、EXEC、WATCH 等命令来实现事务功能。Redis 的事务提供了一种将多个命令请求打包,按顺序放入事务队列,然后一次性、顺序性、排他性地执行这些命令。即在事务执行期间,服务器是不会中断事务而去处理其他客户端的命令请求的,它会将事务中的所有命令都执行完毕后,再去处理其他客户端的请求。
2023-05-04 22:24:58
436
原创 Redis 键的过期删除 & 内存淘汰策略
比如处理验证码时,设置三分钟或五分钟后失效,把分钟数转换成秒或毫秒存储到Redis中。3 和 4 两种方式是。,比如优惠卷的过期时间是某年某月某日,只是单位不一样。Redis 4.0 之后新加了两条。Redis 4.0 之前。1 和 2 两种方式是。
2023-05-04 20:23:26
168
原创 Redis 的持久化机制
Redis 是基于内存操作的数据库,所有的数据都保存在内存中,而内存中的数据当程序结束时就会消失,所以我们要想办法把内存中的数据写到磁盘中,当程序正常退出或异常终止时,重新启动就可以从磁盘文件中恢复数据。随着 Redis 的运行,被执行的写命令不断同步到 AOF 文件中,AOF 文件的体积越来越大,极端情况将会占满所有的硬盘空间。序列化完毕后再将操作期间发生的增量 AOF 日志追加到这个新的 AOF日志文件中,追加完毕后就立即替代旧的 AOF 曰志文件了,瘦身工作就完成了。因为持久化到磁盘的数据是。
2023-05-04 19:54:32
325
原创 @Autowired 与 @Resource 的区别
共同点@Autowired 和 @Resource 注解都是用来实现依赖注入的,都可以作用在字段或者 set 方法上。
2022-05-20 21:09:53
866
原创 查询选修了全部课程的学生的信息
分页查询-- 为什么要分页-- 缓解数据库压力,给人的体验更好,瀑布流-- 分页,没每页只显示五条数据-- 语法:limit起始值,页面大小-- 网页应用:当前,总的页数,页面的大小SELECT `studentno`,`studentname`,`gradeid`,`address`FROM `student`ORDER BY `studentno` DESCLIMIT 0,3-- 第一页 LIMIT 0,5 1~5-- 第二页 LIMIT 5,5 6~10-- 第三页
2021-04-08 17:40:32
24865
10
原创 指针函数和函数指针
指针函数和函数指针指针函数:概念理解:指针函数是指函数返回的类型是某类型的指针的函数。【大白话:“指针”是定语,修饰主语“函数”,所以指针函数就是一个函数,只不过返回的数据类型有点特殊,是个地址值】声明格式:类型说明符 *函数名(参数)int *f(int x,int y){ ......}//这里就是定义了一个返回值类型为指向整型变量的指针的函数,所以函数f就是一个指针函数指针函数的调用:int *p;p=f(3,7);//函数的返回值必须用同类型的指针变量来接收函数
2020-12-10 20:08:19
154
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人