Loading... 首先可以确定是内存超出了上限制,打开宝塔 redis 最大内存位置酌情增加一些。但是不是解决问题的办法。 内存之所以超,一般是缓存的内容太多,或者爬虫来搞事情。这个不在本文需要记录的范围内。 这里先看一下redis的回收策略 ```bash # volatile-lru -> remove the key with an expire set using an LRU algorithm # allkeys-lru -> remove any key according to the LRU algorithm # volatile-random -> remove a random key with an expire set # allkeys-random -> remove a random key, any key # volatile-ttl -> remove the key with the nearest expire time (minor TTL) # noeviction -> don't expire at all, just return an error on write operations ``` 而宝塔默认的是 noeviction 也就是全部不贵过期,只返回一个写入错误。 如果程序里面使用的redis没有设置过期时间,推荐使用 allkeys-lru 会优先删除最近没有试用过的key,另外一个allkeys-random 就是 随机随意删除也可以。 如果设置了过期时间,那么推荐volatile-lru:删除设置了过期时间的key中的最近最久没有用的。 也就是 删除最近没用 打开redis配置文件,搜索maxmemory-policy noeviction 这行 保持注释状态 在下面添加一行 maxmemory-policy allkeys-lru 或者 maxmemory-policy volatile-lru 重载配置 完毕 数据量比较大 或者查询耗时 并且访问量不大且不会频繁更新的内容建议还是采用files储存。毕竟redis吃内存还是很可怕。 最后修改:2021 年 03 月 19 日 10 : 10 AM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 ×Close 赞赏作者 扫一扫支付 支付宝支付 微信支付