GaryLee's Blog
09
12
如何解决Redis的热点key问题? 如何解决Redis的热点key问题?
一、什么是热点key呢?热点key指的是频繁访问的key,比如明星八卦带来的微博热搜、双十一带来的秒杀活动等,都很容易出现热点key。 热点key带来的问题也很明显,就比如突然的微博热搜导致微博卡顿、宕机的情况,就是因为热点key被频繁访问
2023-09-12
11
11
MongoDB和MySQL有什么区别? MongoDB和MySQL有什么区别?
一、MongoDB和MySQL有什么区别? MongoDB MySQL 数据库类型 非关系型 关系型 存储方式 JSON 列+行存储 扩展性 支持分布式部署,可以动态扩展集群 需要横向分表或纵向扩容来解决数据量过大的问题
2023-09-11
11
synchronized的锁优化是怎样的? synchronized的锁优化是怎样的?
一、synchronized的锁优化包括哪些?synchronized的锁优化主要包括: 自旋锁 锁清除 锁粗化 … 二、synchronized的锁优化过程1、自旋锁例子:比如我们去银行取钱,我们有两种方式如下: 站在取款机前排队等
2023-09-11
10
synchronized的锁升级过程是怎样的? synchronized的锁升级过程是怎样的?
一、synchronized锁变化历程 在JDK 1.6及之前的版本中,synchronized锁是通过对象内部的一个叫做监视器锁monitor(也称对象锁)来实现的。当一个线程请求对象锁时,如果该对象没有被锁住,线程就会获取锁并继续执行。
2023-09-10
10
10
如何提升接口的性能? 如何提升接口的性能?
一、如何发现接口的性能问题?可以通过压测结合日志的方式去分析接口的瓶颈点,然后去针对性优化。 二、接口性能优化方案 数据库优化:《如何排查慢SQL问题?》、《如何进行SQL调优?》 引入缓存中间件:对于查询结果一样的请求,为了减少数据库压力
2023-09-10
10
什么是跳表? 什么是跳表?
一、什么是跳表?跳表其实就是多层链表,用来解决单层链表复杂度较高的问题。 跳表的特点: 多层链表组成 每一层链表都是有序的 最后一层链表包含所有数据 第二层链表开始包含前面层所有数据 … 二、跳表操作1、插入跳表插入逻辑跟链表一样的是要
2023-09-10
10
Redis中的Zset是怎么实现的? Redis中的Zset是怎么实现的?
一、什么是Zset?Zset(也叫Sorted Set)是Redis中的一种数据结构,支持传member和score两个字段,同时支持按照score排序。 常见命令: 添加成员:zadd <key> <score>
2023-09-10
09
08
ThreadLocal是什么?实现原理呢? ThreadLocal是什么?实现原理呢?
一、ThreadLocal是什么?ThreadLocal是java.lang包下的一个类,用来解决高并发下线程安全的问题,具体是通过为每一个线程创建一份共享变量的副本来保证各个线程之间的变量的访问和修改互不影响。 比如一次用户的页面请求操作
2023-09-08
08
Spring中Bean的作用域有哪些? Spring中Bean的作用域有哪些?
一、Spring中Bean的作用域Spring中支持以下五种Bean的作用域: singleton(默认):单例,也就是Spring容器中只会有一个Bean实例 prototype:每次获取都会创建一个新的Bean实例 request:每
2023-09-08
7 / 16