- 博客(8)
- 收藏
- 关注
原创 Redis内存回收策略
执行周期有两种: Redis服务初始化函数initServer()中设置定时任务,按照server.hz的频率来执行过期key清理,模式为SLOW Redis的每个事件循环前会调用beforeSleep()函数,执行过期key清理,模式为FAST。执行周期有两种: Redis服务初始化函数initServer()中设置定时任务,按照server.hz的频率来执行过期key清理,模式为SLOW Redis的每个事件循环前会调用beforeSleep()函数,执行过期key清理,模式为FAST。
2023-08-13 22:15:51 348 1
原创 Redis数据结构原理2
对⼀个内部表示成long型的string执行append, setbit, getrange这些命令,针对的仍然是string的值(即⼗进制表示的字符串),而不是针对内部表⽰的long型进⾏操作。底层实现⽅式:动态字符串sds 或者 long String的内部存储结构⼀般是sds(Simple Dynamic String,可以动态扩展内存),但是如果⼀个String类型的value的值是数字,那么Redis内部会把它转成long类型来存储,从⽽减少内存的使用。之前学习的哪种编码结构可以满足?
2023-08-12 18:32:58 126 1
原创 Redis数据结构原理1
压缩列表的可以看做一种连续内存空间的"双向链表"列表的节点之间不是通过指针连接,而是记录上一节点和本节点长度来寻址,内存占用较低如果列表数据过多,导致链表过长,可能影响查询性能增或删较大数据时有可能发生连续更新问题。
2023-08-11 19:54:12 115 1
原创 Redis黑马点评重点
假设线程1去查询缓存,然后从value中判断出来当前的数据已经过期了,此时线程1去获得互斥锁,那么其他线程会进行阻塞,获得了锁的线程他会开启一个 线程去进行 以前的重构数据的逻辑,直到新开的线程完成这个逻辑后,才释放锁, 而线程1直接进行返回,假设现在线程3过来访问,由于线程线程2持有着锁,所以线程3无法获得锁,线程3也直接返回数据,只有等到新开的线程2把重建数据构建完后,其他线程才能走返回正确的数据。项目中,登录的用户信息非常重要,在访问其他接口时也经常要用到用户信息,因此如何快速获得登录的用户信息。
2023-07-28 21:28:47 197 1
原创 RedisTemplate和StringRedisTemplate的区别
但是遇到非String类型的数据,我们需要手动将数据类型转化为String类型才能存储,假如是Java对象类型的数据,我们要手动序列化存储,然后在读取的时候反序列化查看。StringRedisTemplate不需要配置类,直接可以注入使用,但遇到json类型的数据需要手动序列化和反序列化,可以根据自己的需求选择适合的方式。当需要存储Java对象时,手动完成对象的序列化和反序列化。可读性非常差,所以我们需要定义RedisTemplate的序列化方式,采用了JSON序列化来代替默认的JDK序列化方式。
2023-07-27 18:47:35 178 1
原创 Java上传文件的两种方式
很多时候我们在前端页面需要展示一些图片,比如在创建菜品信息的时候,需要展示菜品的图片,有一个添加图片的功能,添加完之后,图片会立马回显到前端页面,那么这个功能如何实现呢?首先前端代码当中有一个file标签,可以打开我们系统的文件夹选择要保存的一张图片,之后发起请求到后端,由后端将这个二进制文件进行保存,而保存有两种方式。
2023-07-15 13:19:34 2319 1
原创 springboot配置与java实体类对象的联系
endpoint,accessKeyId, accessKeySecret, bucketName,这四个参数是连接上你阿里云库的必要参数,由于在开发中可能有很多开发环境,比如pre,dev等,不同的环境下我们可能会用到不同的阿里云库,因此这些参数不会在Java代码中写死,而是放在配置文件当中,那么配置文件中保存的用户名,秘钥等信息如何传递到java代码当中呢?5.在controller中注入AliOssUtil,传入参数就可以调用upload方法。2.在Java类中如何读取到这些配置信息呢?
2023-07-15 12:51:01 294 1
原创 多表公共字段自动填充aop
2.采用前置通知,在更新或者插入之前,将传过来的实体类里面的要公共字段的字段进行赋值,因为我们没有手动的去赋值,因此传过来的比如 employee对象中的createUser等字段是空的或者是更新前的;在项目开发中,遇到多个表都有字段创建时间,创建人,修改时间,修改人等,在创建实体对象的时候,这些字段需要我们手动添加,特别麻烦。步骤二:自定义注解类,指定注解加在注解上,用于标识哪些方法需要需要进行字段自动填充,步骤三:自定义切面类,aop利用反射进行公共字段的赋值。
2023-07-15 11:29:05 190 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人