06 2023 档案
摘要:一、最新的项目中什么场景使用了redis? 1、海尔的订单中心中,创单接口使用redis缓存订单数据,优惠券授权使用redis缓存授权用户与订单的关联信息。 2、京东的会员通项目中,使用Redisson分布式锁锁住活动数量防止超卖。
阅读全文
摘要:一、作用 布隆过滤器(BloomFilter)可以用于检索一个元素是否存在于一个集合中。 二、底层数据结构 bitmap(位图):相当于是一个以bit位为单位的数组,数组中每个单元只能存储二进制数0或1。 存储数据:通过多个hash函数,根据hash计算数组对应的位置改为1。 查询数据:使用相同ha
阅读全文
摘要:Filter > Interceptor > Aop 如果Intercepor返回false,则AOP不会被执行。 一、Filter
阅读全文
摘要:一、应用层面 读写分离、缓存、ES、线程池、多线程、队列、集群、令牌、系统拆分、隔离、系统升级(可水平扩容方向)、限流、页面静态化。 1、页面静态化 通过Freemarker对页面进行静态化,减少用户与服务器端的交互。 二、时间换空间 降低单次请求时间,这样在单位时间内系统并发就会提升。 三、空间换
阅读全文
摘要:一、问题背景 在mysql中用自增列作为主键时,先往表里插入5条数据,此时表里数据id为1、2、3、4、5,如果此时删除id=4、5的数据后,再重启数据库,重启成功后向表里插入数据的时候,innodb、myisam引擎下ID分别是从几开始增加? 二、使用InnoDB引擎 在mysql 8.0版本之前
阅读全文
摘要:一、悲观锁 二、乐观锁 三、唯一索引 四、token+redis 1、前端第一次请求时,服务端生成一个token,放到redis中,设置过期时间,并把token返回给前端。 2、前端将token放到header中。以后请求的时候,把token带到服务端。 3、服务端判断token是否已经存在。如果已
阅读全文
摘要:一、Redisson分布式锁的加锁机制? 为什么需要分布式锁?有哪些应用场景? 在分布式 分布式锁的加锁机制?以tryLock为例 (1) tryAcquire 尝试获取锁。 首先通过tryAcquire方法尝试获取锁,如果获取锁成功,返回ttl为null,如果获取锁失败,返回已经被持有锁的ttl。
阅读全文
摘要:一、为什么要进行垃圾回收? 因为内存的容量是有限的。 二、如果判断一个对象需要回收? 1、引用计数算法:给每个对象中加一个引用计数器。每增加一个引用,计数器就+1。当计数器为0时,代表没有引用。因为有循环引用的存在,所以java虚拟机不再使用引用计数算法。 2、可达性分析算法:通过GC Roots作
阅读全文
摘要:一、SpringCloudAlibaba功能组件? Sentinel:流量控制,熔断降级,系统负载保护等方面。 Nacos:注册中心,配置管理中心。 RocketMq:分布式消息系统。 Dubbo:java 的 RPC框架。 Seata:分布式事务解决方案。 Alibaba Cloud OSS:阿里
阅读全文