ACSD-63687: Redis 캐시 정리 문제로 인해 잘못된 가격이 표시됩니다.
ACSD-63687 패치는 Redis 캐시 가비지 수집기가 LUA 모드 없이 실행되어 경합 상태가 발생할 때 잘못된 가격이 표시되는 문제를 해결합니다. 이 패치는 Quality Patches Tool (QPT) 1.1.77이 설치된 경우에 사용할 수 있습니다. 패치 ID는 ACSD-63687입니다. 이 문제는 Adobe Commerce 2.4.9에서 수정됩니다.
영향을 받는 제품 및 버전
Adobe Commerce 버전에 대한 패치가 만들어졌습니다.
- Adobe Commerce(모든 배포 방법) 2.4.5-p9
Adobe Commerce 버전과 호환:
- Adobe Commerce(모든 배포 방법) 2.4.5 - 2.4.6-p13
magento/quality-patches 패키지를 최신 버전으로 업데이트하고 Quality Patches Tool에서 호환성을 확인합니다. 패치 검색 페이지. 패치 ID를 검색 키워드로 사용하여 패치를 찾습니다.문제
Redis 캐시 정리에 실패하여 잘못된 가격이 표시됩니다.
재현 단계:
-
Adobe Commerce 환경에 대해 Redis을(를) 구성합니다.
-
상점 첫 화면에서 여러 제품 카테고리를 만들 수 있습니다.
-
범주 페이지에 반복 요청을 보내는 스크립트를 만듭니다. JMeter 스크립트 또는 이와 동등한 로드 테스트 도구를 사용합니다.
-
스크립트가 범주 페이지에 요청을 보내는 동안
block_html캐시를 지우고backend_clean_cachecron 작업을 여러 번 실행합니다. -
제공된 스크립트를 실행하여 MAGE 캐시 집합에 존재하지 않는 Redis개의 캐시 키 레코드를 식별하십시오. 로컬 프로젝트 구성과 일치하도록 Redis 포트 및 MAGE 캐시 태그 접두사를 업데이트합니다.
code language-none #!/bin/bash REDIS_PORT=6379 REDIS_DB=0 SET_NAME="zc:ti:af6_MAGE" redis-cli -p $REDIS_PORT -n $REDIS_DB keys "zc:k:*" | while read KEY; do STRIPPED_KEY=${KEY#"zc:k:"} EXISTS=$(redis-cli -p $REDIS_PORT -n $REDIS_DB sismember "$SET_NAME" "$STRIPPED_KEY") if [ "$EXISTS" -eq 0 ]; then TIMESTAMP=$(redis-cli -p $REDIS_PORT -n $REDIS_DB hget "$KEY" "m") if [ -n "$TIMESTAMP" ]; then FORMATTED_TIME=$(date -r "$TIMESTAMP" +"%y-%m-%d %H:%M:%S") echo "$KEY - m: $FORMATTED_TIME" else echo "$KEY - m: (null)" fi fi done
예상 결과:
해당 레코드가 없는 캐시 키가 Redis에 만들어지지 않으며 backend_clean_cache Cron 작업이 캐시 항목을 올바르게 정리합니다.
실제 결과:
캐시 키가 해당 레코드 없이 Redis에 생성되므로 backend_clean_cache 크론으로 트리거된 캐시 정리가 작동하지 않습니다.
패치 적용
개별 패치를 적용하려면 배포 방법에 따라 다음 링크를 사용합니다.
- Adobe Commerce 또는 Magento Open Source 온-프레미스: Quality Patches Tool 가이드의 > 사용량Quality Patches Tool
- 클라우드 인프라의 Adobe Commerce: Commerce on Cloud Infrastructure 안내서의 업그레이드 및 패치 > 패치 적용.
관련 읽기
Quality Patches Tool에 대한 자세한 내용은 다음을 참조하세요.