自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 Spring Boot 中 Redis 键过期后的处理操作

*** 处理乱码问题// key 序列化 redisTemplate . setKeySerializer(new StringRedisSerializer());// val 序列化 redisTemplate . setValueSerializer(new GenericJackson2JsonRedisSerializer());} }/*** 监听 reids 过期事件} /**

2023-05-05 21:04:19 628

原创 Redis 缓存问题

Q2:如果线程 A 加锁成功,锁的过期时间为 10s,但是由于业务复杂,执行时间较长,10s 内线程还没有执行完任务,此时该锁已经过期自动释放掉了(del)。A2.2:为每个线程设置锁的时候,value 值设置为自己线程的 ID,这样在释放锁(del)的时候先查看(get)锁是不是自己的,如果是,然后再进行 del 操作。A2.1:Redission 提供了一个监控锁的看门狗,它的作用就是为锁续时,如果一个拿到锁的线程执行业务代码的时间过长,那么看门狗会帮助线程延长锁的过期时间,锁不会因为过期而被释放。

2023-05-05 20:48:06 111

原创 Redis 的数据结构与基本数据类型

Redis 使用跳跃表作为有序集合键的底层实现之一,如果一个有序集合包含的元素数量比较多,又或者有序集合中元素的成员(member)是比较长的字符串时,Redis 就会使用跳跃表来作为有序集合键的底层实现。整数集合(intset)是集合键(Set 类型的数据)的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素数量不多时,Redis 就会使用整数集合作为集合键的底层实现。,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定的、并且是很小的。

2023-05-05 17:54:48 138

原创 Redis 主从复制

主从复制,是将一台 Redis 服务器的数据,复制到其他的 Redis 服务器。前者称为主节点(Master/Leader),后者称为从节点(Slave/Follower)数据的复制是单向的!只能由主节点复制到从节点(主节点以写为主、从节点以读为主)—— 读写分离。默认情况下,每台 Redis 服务器都是主节点,一个主节点可以有 0 个或者多个从节点,但每个从节点只能有一个主节点。

2023-05-05 11:49:20 81

原创 缓存与数据库双写一致性问题

当该缓存对应的数据需要经过大量的计算过程才能得到时,比如需要访问多张表进行统计计算。那么在写操作中更新缓存的动作将会是一笔不小的开销。【提高响应速度】当写操作较多时,可能也会存在刚更新的缓存还没有被读取到,又再次被更新的情况(这常被称为缓存扰动),显然,这样的更新是白白消耗机器性能的,会导致缓存利用率不高。所以等到读请求未命中缓存时再去更新,也符合懒加载的思路,需要时再进行计算。删除缓存的操作不仅是幂等的,可以在发生异常时重试,而且写-删除和读-更新在语义上更加对称。

2023-05-04 22:57:43 124

原创 Redis 事务

Redis 通过 MULTI、EXEC、WATCH 等命令来实现事务功能。Redis 的事务提供了一种将多个命令请求打包,按顺序放入事务队列,然后一次性、顺序性、排他性地执行这些命令。即在事务执行期间,服务器是不会中断事务而去处理其他客户端的命令请求的,它会将事务中的所有命令都执行完毕后,再去处理其他客户端的请求。

2023-05-04 22:24:58 376

原创 Redis 键的过期删除 & 内存淘汰策略

比如处理验证码时,设置三分钟或五分钟后失效,把分钟数转换成秒或毫秒存储到Redis中。3 和 4 两种方式是。,比如优惠卷的过期时间是某年某月某日,只是单位不一样。Redis 4.0 之后新加了两条。Redis 4.0 之前。1 和 2 两种方式是。

2023-05-04 20:23:26 58

原创 Redis 的持久化机制

Redis 是基于内存操作的数据库,所有的数据都保存在内存中,而内存中的数据当程序结束时就会消失,所以我们要想办法把内存中的数据写到磁盘中,当程序正常退出或异常终止时,重新启动就可以从磁盘文件中恢复数据。随着 Redis 的运行,被执行的写命令不断同步到 AOF 文件中,AOF 文件的体积越来越大,极端情况将会占满所有的硬盘空间。序列化完毕后再将操作期间发生的增量 AOF 日志追加到这个新的 AOF日志文件中,追加完毕后就立即替代旧的 AOF 曰志文件了,瘦身工作就完成了。因为持久化到磁盘的数据是。

2023-05-04 19:54:32 118

原创 Redis 单线程模型

Redis 设计与实现》 P167。

2023-05-04 11:13:38 75

原创 @Autowired 与 @Resource 的区别

共同点@Autowired 和 @Resource 注解都是用来实现依赖注入的,都可以作用在字段或者 set 方法上。

2022-05-20 21:09:53 691

原创 查询选修了全部课程的学生的信息

分页查询-- 为什么要分页-- 缓解数据库压力,给人的体验更好,瀑布流-- 分页,没每页只显示五条数据-- 语法: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 23108 9

原创 layui动态生成复选框及向后端传递选中复选框的值

layui动态生成复选框并向后端传递选中复选框的值

2021-02-22 12:05:40 3426 2

原创 指针函数和函数指针

指针函数和函数指针指针函数:概念理解:指针函数是指函数返回的类型是某类型的指针的函数。【大白话:“指针”是定语,修饰主语“函数”,所以指针函数就是一个函数,只不过返回的数据类型有点特殊,是个地址值】声明格式:类型说明符 *函数名(参数)int *f(int x,int y){ ......}//这里就是定义了一个返回值类型为指向整型变量的指针的函数,所以函数f就是一个指针函数指针函数的调用:int *p;p=f(3,7);//函数的返回值必须用同类型的指针变量来接收函数

2020-12-10 20:08:19 103

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除