PHPは、統合プライマリ・キー・キャッシュ用のピット


質問:PHPにとってhash構造に基づくarrayは万能であるため,設計テーブルの抽象化の際には$pk = array('field1', 'field2');という文でプライマリ・キーを設定する.Redisを格納する必要がある場合、$pkを何らかの形で展開してKeyとしてRedisに格納する.しかし、実際のプロセスでは、キャッシュが見つからないことがよくあります.位置決めは長時間デバッグされましたが、結合プライマリ・キーに対してクエリーを実行するときに、結合プライマリ・キーのパラメータ$object->get(['field1' => 'value1', 'field2' => 'value2']);を右側に渡します.このような書き方は勝手です.つまり、2つのフィールドが逆になっている可能性があります.データベース操作層をWHEREに展開した後も,配列をforeach遍歴してWHERE field1='value1' AND field2='value2'に展開するが,WHEREの後の順序がどのように書かれているかは実際の結果には影響しない.しかしredisのkeyに展開する過程で,一定の順序でなければならないため,与えられたプライマリ・キー配列の並べ替えが異なると,生成されたkeyは自然に異なり,結果は自然に見つからなくなる.解決策:配列keyのソートは、キャッシュを取得するたびにksortまたはkrsortを使用して行います.