小程序排错(redis导致)

Posted 行知笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小程序排错(redis导致)相关的知识,希望对你有一定的参考价值。

小程序突然出问题,题库加载不了,程序正常,测试环境同样环境,同样代码都正常,但是线上数据秒过期,怀疑redis过期时间设置有问题,但是检查配置没问题,写入数据带过期时间也正常。

redis设置key:

SET cache_page "www.google.com"  #设置key
EXPIRE cache_page 30         #设置过期时间
TTL cache_page                   #查看还有多少时间过期
EXPIRE cache_page 30000    #重新设置过期时间
TTL cache_page       

自己新建key测试都正常,但是跑程序就有问题。

查询使用量

redis-cli -h 127.0.0.1 -p 6379 info
查看内存使用情况:
used_memory:1000167064
used_memory_human:953.83M
used_memory_rss:1104846848
used_memory_rss_human:1.03G
used_memory_peak:1010460760
used_memory_peak_human:963.65M
total_system_memory:16657608704
total_system_memory_human:15.51G
used_memory_lua:37888
used_memory_lua_human:37.00K
maxmemory:2147483648
maxmemory_human:2.00G
maxmemory_policy:noeviction
mem_fragmentation_ratio:1.10
mem_allocator:jemalloc-4.0.3

发现内存使用量过大,加上故障过程clean掉的key,已经满了,现在不难解释,当redis满了之后,会将原来的key删掉,导致故障

redis在线加内存:

config set maxmemory 2147483648  #加内存
CONFIG GET maxmemory  #得到最大内存

redis增加内存,故障恢复

以上是关于小程序排错(redis导致)的主要内容,如果未能解决你的问题,请参考以下文章

java线上程序排错经验2 - 线程堆栈分析

微信小程序代码片段分享

java的UI程序 简单 排错

小程序各种功能代码片段整理---持续更新

es redis logstash 日志收集系统排错

导致资产预编译在heroku部署上失败的代码片段