计算机基础复习12.22

Redis实现分布式锁

set lock_key unique_value nx px 10000

lock_key: key键

unique_value:是唯一的标识

nx: 表示lock_key不存在,才对lock_key进行设置

px: 设置过期时间

Linux的排查命令

top 实时监控进程 显示CPU 内存 负载 交换区

netstat:查看网络连接,监听端口,路由信息

ps:查看系统正在运行的进程

ifconfig/ip:查看和配置网络接口的信息 IP地址,子网掩码,网关等

Redis淘汰策略

1.不进行数据淘汰:当运行内存超过最大设置内存时,不淘汰任何数据,有新的数据写入,就会报错禁止写入

2.设置过期时间的数据进行淘汰:

随机淘汰设置了过期时间的任意键值

优先淘汰更早过期的键值

淘汰所有设置了过期时间的键值中,最久未使用的键值

淘汰所有设置了过期时间的键值中,最少使用的键值

3.所有数据范围内进行淘汰

随机淘汰任意键值

淘汰整个键值中最久未使用的键值

淘汰整个键值中最少使用的键值

过期删除策略

定时删除:可以保证过期key会尽快被删除,对内存友好

惰性删除:不主动删除过期键,每次从数据库访问key时,都检测key是否过期,如果过期则删除key

定期删除:每隔一段时间随机从数据库中取出一定数量的key进行检查,并删除其中的过期key

垃圾回收

引用计数法:为每个对象分配一个引用计数器,每当有一个地方引用它时,计数器加1;当引用失效时,计数器减1,当计数器为0时,表示对象不再被任何变量引用,可以被回收

缺点是:不能解决循环引用的问题,即两个对象相互引用,但不再被其他任何对象引用,这时引用计数器不会为0,导致对象无法被回收

可达性分析法

GC Root: 从一组称为GC Root的对象出发,向下追溯他们引用的对象,以及这些对象引用的其他对象,如果一个对象到GC root没有任何引用链相连

GC Root对象包括:虚拟机栈中引用的对象,方法区中类静态属性引用的对象,本地方法栈中引用的对象,活跃线程的引用

算法

标记-清除:通过可达性分析,标记出所有需要回收的对象,统一回收所有被标记的对象

复制:内存分为两块,当内存不够时,将这一块内存中所有存活的复制到另一块,然后把已使用的内存整个清理掉

标记-整理:标记的之后,将所有存活的对象都移动到内存的一端,移动结束后直接清理掉剩余部分

分代回收:将内存分成新生代和老年代,依据对象的生存周期,经过一定GC次数,年龄超过一定值后,如果对象还存活,将进入老年代

CMS收集器:老年代并行收集器,以获取最短回收停顿时间为目标的收集器,具有高并发,低停顿的特点,追求最短GC回收停顿时间

G1收集器:G1回收

死锁的条件

互斥,持有并等待,不可剥夺,环路等待

Redis常用数据结构:String List Hash Set ZSet BitMap

Zset 每个存储元素有两个值组成,一个是有序集合的元素值,一个是排序值 内部使用跳表结构

跳表是在链表基础上改进的,实现了一种多层有序链表

相关推荐
子兮曰15 小时前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
小羊没烦恼!15 小时前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
子兮曰16 小时前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
俊昭喜喜里16 小时前
java中的继承和多态的区别
java
小羊没烦恼!16 小时前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
爱勇宝16 小时前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
譕痕16 小时前
JSONObject与JSONArray封装数据格式区别
java·json
胡写代码16 小时前
别再前后端各写一套表单校验了
java·后端
小鱼能吃糖16 小时前
缺陷修复总览 · mall电商项目:5类缺陷,1个病根,4个业务域
java·电商
此时不提桶,更待何时17 小时前
01-06-A-JVM排查实战详解
java·jvm