redis内存空间满了

今晚产品的动态功能突然出现问题,马上登录ECS查看,发现大量的:OOM command not allowed when used memory > 'maxmemory'.异常。登录到阿里云的管理控制台查看,果然redis内存空间被占满了...在紧急扩容后,动态好用了。

回头检查代码,原本为解决动态按本地+时间排序规则下分页的问题,缓存了最新的8小时内的动态,也就是说8小时内的动态完全是排好序存放在redis中的,采用List结构存储,每次用户进入动态时会更新这部分缓存,用户浏览顺序动态时做lPop操作,这样redis内容会被清空,所以当时没考虑设置超时时间。

但实际的情况是,用户进入动态只查看几条就走了。。。就走了。。根本不足以Pop出所有的数据...于是数据越积越多直到充爆内存。。所以过期时间还是要设置的。设置多少时间合适呢?看了一下友盟,发现产品使用时间基本在1-3分钟(80%),所以暂时先设置超时时间为3分钟试试,通过监控再做合理的调整吧。


你可能感兴趣的:(redis内存空间满了)