私は数日前に Redis について簡単に学びました。今、プロジェクトでそれを使用する準備ができています。現在 Yii2 フレームワークを使用しています。公式 Web サイトで Redis を検索したところ、yii2-redis 拡張機能が見つかりました。
インストール後の使用は非常に簡単です。common/config/main.phpファイルを次のように変更します。
リーリーOK、Yii のキャッシュを引き継ぐために redis が使用されるようになりました。キャッシュの使用方法は以前と同じですが、バグではないバグがあります。小さな落とし穴については後でお話します。
まずキャッシュをテストしましょう、
リーリーテスト結果を見てみましょう。
以前と同じ使用法で問題ありません。 。
でも、バグではないバグがあると言いましたが、それは小さな穴ですが、それは何ですか?
redisを直接使用してキャッシュを引き継ぐ場合、普通に使用する分には問題ありませんが、有効期限の値がintの範囲を超えるとredisがエラーを報告します。
私は yii2-admin を使用しましたが、これはたまたま私にとって罠でした。これは 30 日間 (2592000 秒) キャッシュされ、Redis キャッシュ時間の精度はデフォルトでミリ秒を使用するため、時間は 2592000000 ミリ秒になります。
redisの有効期限はint型のみですが、Cache.php内のPHPでは何も処理せずに強制的にint型に変換されるため、-1702967296となりエラーが報告されます。
ただし、図に示すように、redis コマンドラインの直下には負の数はありません。
しかし、それは問題ではありません。修正するのは非常に簡単で、数秒に変更できます。
vendor/yiisoft/yii2-redis/Cache.php 行 133 を開き、次のコードに変更します。
リーリー
大丈夫です。