小程序排错(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增加内存,故障恢复