PHP가 redis를 사용할 때 메모리 부족에 대한 해결 방법: 1. 구성 파일 또는 명령을 통해 Redis의 최대 메모리 크기를 100M로 설정합니다. 2. 현재 메모리 제거 전략을 가져옵니다. 3. "config set maxmemory-policy"를 통해 수정합니다. allkeys-lru" 명령 그냥 전략을 제거하세요.
本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。
//设置Redis最大·용内存大小为100M 최대 메모리 100mb
redis의 配置文件불일정 사용 가능한 redis.conf 문자는 启动redis에 사용되는 저장소입니다.改
Redis支持运行时通过命令动态修改内存大小Redis의 스토리지는 2GB입니다.
既然可以设置Redis는 大内存大小,那么配置의 内存就유용한 时候입니다.就没内存可用了吗?实际上Redis定义了几种策略用来处理这种情况:휘발성-lru:从设置了过期时间的key中使用LRU算法进行淘汰allkeys-random:从所有key中随机淘汰数据휘발성-random:从设置了过期时间的key中随机淘汰휘발성 -ttl: 에서 设置了被淘汰当使사용 휘발성 lru 、 휘발성-random
、휘발성-ttl这三种策略时,如果没有key可以被淘汰,则和 noeviction一样返回错误如何获取及设置内存淘汰策略获取当前内存淘汰策略:
LRU算法
LRU(Least Recent Used)는 가장 최근에 사용된 캐시 교체 알고리즘입니다. 메모리를 캐시로 사용하는 경우 캐시의 크기는 일반적으로 고정되어 있습니다. 캐시가 가득 차고 계속해서 캐시에 데이터를 추가하는 경우 오래된 데이터 일부를 제거하고 새 데이터를 저장할 메모리 공간을 확보해야 합니다. 이때 LRU 알고리즘을 사용할 수 있다. 핵심 아이디어는: 최근 기간에 데이터 조각이 사용되지 않은 경우 향후 사용될 가능성이 매우 적으므로 제거할 수 있다는 것입니다.
Redis는 기존 LRU 알고리즘과 동일하지 않은 대략적인 LRU 알고리즘을 사용합니다. 근사 LRU 알고리즘은 무작위 샘플링을 통해 데이터를 제거하고, 매번 무작위로 5개(기본값) 키를 선택하고, 가장 최근에 사용된 키를 제거합니다.
maxmemory-samples 매개변수를 통해 샘플 수를 수정할 수 있습니다. 예: maxmemory-samples 10 maxmenory-samples 구성이 클수록 제거 결과는 엄격한 LRU 알고리즘에 더 가까워집니다.
대략적인 LRU를 구현하려면 알고리즘에 따라 Redis는 각 키에 추가 값을 추가합니다. 키에 마지막으로 액세스한 시간을 저장하기 위해 추가 24비트 필드가 추가됩니다.
추천 학습: "PHP 비디오 튜토리얼"
위 내용은 PHP가 redis를 사용하는데 메모리가 부족하면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!