Modulshop - Eine große Auswahl an neuen und hilfreichen Modulen für die modified eCommerce Shopsoftware
Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Redis (php-redis, nicht predis) als Cache ( phpfastcache ) unter PHP7

    fkronenb

    • Neu im Forum
    • Beiträge: 2
    Beim Einrichten von Redis als Storage für phfastcache ist mir aufgefallen, dass php-redis (PHP7 auf Ubuntu 18.04 ) im Unterschied zu predis nicht Out-of-the-Box funktionierte.

    Für alle, die das auch schon versucht haben, hier ein Tipp:
    In  xtc_db_queryCached lassen sich keine Key-Value-Paare im Cache setzen, weil die Konstante DB_CACHE_EXPIRE in xtc_db_queryCached nicht als Int sondern als String an die set-Methode übergeben wird:

    Code: PHP  [Auswählen]
        // set cache  
          $cache->set($id, $records , DB_CACHE_EXPIRE);

    php-Redis erwartet Int-Werte als Cache-Expire-Angabe sonst schlägt das Set fehl::

    Code: PHP  [Auswählen]
        // set cache  
          $cache->set($id, $records , (int) DB_CACHE_EXPIRE);

    Ich vermute, in PHP5 ist das anscheinend als Wert 0 interpretiert worden, so dass kein Expire gesetzt wurde. In PHP7 ist damit Schluss:

    Code: PHP  [Auswählen]
    127.0.0.1:6379> setex foo 0 bar
    (error) ERR invalid expire time in setex
    127.0.0.1:6379> set foo bar ex 0
    (error) ERR invalid expire time in set
     

    Gruß,
    Fritz

    Linkback: https://www.modified-shop.org/forum/index.php?topic=39238.0

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.744
    • Geschlecht:
    Klasse, vielen Dank für die Info.
    Das kommt daher, daß der Wert DB_CACHE_EXPIRE in der DB-Tabelle configuration in einem Feld mit Type TEXT steht und programmatisch in eine Konstante gespeichert wird, was den Wert der Konstanten ohne Type-Cast als String ansieht.
    Gut erkannt.

    Es wäre Klasse wenn du so nett wärst dazu noch ein Ticket im Bug-Tracker anzulegen.

    Gruß,
    noRiddle

    webald

    • modified Team
    • Beiträge: 2.795
    Ist schon behoben

    fkronenb

    • Neu im Forum
    • Beiträge: 2
    klasse, danke!
    2 Antworten
    880 Aufrufe
    07. Februar 2021, 16:07:26 von h-h-h
    12 Antworten
    5105 Aufrufe
    20. Juni 2017, 14:00:43 von derheiko