话不多说,直接上图!
今天在线上使用的时候,客户反应一个业务点击的时候直接报空指针,刚开始我也以为是代码的问题,然后排查了一圈,代码完全没毛病,然后尝试了一下查询那个数据,好家伙,一查询页面直接报空指针异常了,但是换另一些数据的话完全没问题,我又开始排查这个数据相关的东西,也都没有问题,就个时候就很纳闷了,这是为什么呢?
经过一段时间的挠头的,我想到了可能跟redis缓存有关系,于是我果断去查找redis使用内存,如下图详细信息
used_memory: Redis分配的内存总量,即存储的所有数据占用的内存。包括redis进程内部开销和使用的虚拟内存(即swap),单位byte。
used_memory_human: 以可读格式返回使用的内存量(只是显示更友好).
**used_memory_rss_human:**以可读格式返回Redis进程占用的物理内存总量
**used_memory_peak:**内存使用的最大值,表示used_memory峰值
**used_memory_peak_human:**以可读格式返回内存使用的最大值
**used_memory_lua:**Lua进程使用内存
**mem_fragmentation_ratio:**内存碎片率,等价于(used_memory_rss /used_memory)
**mem_allocator:**redis使用的内存分配器:在编译时指定;可以是 libc 、jemalloc或者tcmalloc,默认是jemalloc;
但是内存好像也不存在问题,并没有存在内存满了之类的问题,毕竟也不大可能出现,(redis内置淘汰策略),
最有可能就是延迟加载问题了,然后就去重启了redis服务和正式服务器,结果重启之后一切都好了!
总结:90%摸不着头脑的问题,都可以重试去重启一下,yyds!