摘要: 导火索:由于万恶的fastjson反序列化漏洞,不得不对一个很老的系统进行升级发布。 问题:当系统发布后,陆续收到fullgc的告警,经过一段时间运行后告警频率慢慢降低。找运维要了gc日志。日志如下: {Heap before GC invocations=11 (full 5): par new 阅读全文
posted @ 2021-04-23 14:21 myspringlove 阅读(171) 评论(0) 推荐(1)
摘要: redis源码分析笔记之主从复制 1、通过源码了解redis从机启动初始化时,发生了什么? 2、通过源码了解redis主从服务器直接是如何保持数据一致的。 3、通过源码了解在非哨兵模式下主节点与从节点断线、主节点服务中断、从节点服务中断后会发生什么? 一:主从复制 若想使一个redis服务器成为另一 阅读全文
posted @ 2021-03-15 15:18 myspringlove 阅读(259) 评论(0) 推荐(0)
摘要: redis源码分析笔记之客户端 结构定义 源码: /* server.h 5.0.8 *With multiplexing we need to take per-client state. * Clients are taken in a linked list. */ typedef struc 阅读全文
posted @ 2021-03-01 15:56 myspringlove 阅读(94) 评论(0) 推荐(0)
摘要: ​ redis键值操作均是在内存中进行的,内存中的数据当服务重启、机器故障时可能会丢失,故需要将内存中的数据保存在磁盘中,即持久化,以免数据丢失。redis提供两种方式的内存持久化:RDB(redis database)与AOF(append only file)。RDB基于将内存状态保存到磁盘中, 阅读全文
posted @ 2021-02-08 15:36 myspringlove 阅读(103) 评论(0) 推荐(1)
摘要: 一个redis服务一般包含0-15号数据库,一般常用的只有0号数据库,选择数据库可以通过客户端指定。 ​ 一个RedisDb包含键值空间字典dict、键过期字典expires。其中dict包含了实际存储数据的字典表,而expires包含了dict中具有过期时间的key和有效时间戳。 结构图如下: 源 阅读全文
posted @ 2021-02-04 19:21 myspringlove 阅读(272) 评论(0) 推荐(1)
摘要: 定义结构: typedef struct dictEntry { void *key;//新版本SDS结构 《redis设计与实现》一书中,旧字典的Key值为redisObject结构 union { void *val; uint64_t u64; int64_t s64; double d; } 阅读全文
posted @ 2021-01-27 20:13 myspringlove 阅读(90) 评论(0) 推荐(1)
摘要: java静态代码块、属性赋值、构造代码块、构造方法的执行顺序 首先static代码块和static变量赋值均在类加载时执行,普通属性在对象创建时产生,显然 static优先于非static static代码块与static属性先后顺序 //指令代码如下(仅截取static <clinit>()V方法 阅读全文
posted @ 2021-01-27 16:59 myspringlove 阅读(493) 评论(0) 推荐(1)
摘要: 部分源码解读(5.0.8版本) 定义结构: /* Note: sdshdr5 is never used, we just access the flags byte directly. * However is here to document the layout of type 5 SDS s 阅读全文
posted @ 2021-01-05 20:56 myspringlove 阅读(155) 评论(0) 推荐(1)