[僅限PaaS]{class="badge informative" title="僅適用於雲端專案(Adobe管理的PaaS基礎結構)和內部部署專案的Adobe Commerce 。"}
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
NOTE
此修補程式可能適用於發行版本為Quality Patches Tool的其他版本。 若要檢查修補程式是否與您的Adobe Commerce版本相容,請將
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 cron觸發的快取清理無法運作。
套用修補程式
若要套用個別修補程式,請根據您的部署方法使用下列連結:
- Adobe Commerce或Magento Open Source內部部署: Quality Patches Tool 指南中的>使用狀況Quality Patches Tool。
- 雲端基礎結構上的Adobe Commerce:雲端基礎結構上的Commerce指南中的升級和修補程式>套用修補程式。
相關閱讀
若要進一步瞭解Quality Patches Tool,請參閱:
recommendation-more-help
c2d96e17-5179-455c-ad3a-e1697bb4e8c3