[僅限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快取清理失敗。

要再現的步驟

  1. 為Adobe Commerce環境設定Redis。

  2. 在店面中建立多個產品類別。

  3. 建立指令碼,將週期性請求傳送至類別頁面。 使用JMeter指令碼或等效的載入測試工具。

  4. 當指令碼傳送要求至類別頁面時,請執行block_html快取清除並多次執行backend_clean_cache cron工作。

  5. 執行提供的指令碼,以識別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觸發的快取清理無法運作。

套用修補程式

若要套用個別修補程式,請根據您的部署方法使用下列連結:

相關閱讀

若要進一步瞭解Quality Patches Tool,請參閱:

recommendation-more-help
c2d96e17-5179-455c-ad3a-e1697bb4e8c3