Redis にセッションを保存するときに考慮すべき問題:
セッション データはどのように Redis に保存されますか?セッション属性の変更はいつストレージをトリガーしますか? (推奨される学習: Redis ビデオ チュートリアル )
実装:
セッション内のデータがマップのような構造を持つことを考慮する, redis が使用されます セッション データの保存にはハッシュの方が適しています。セッション データの保存に単一の値が使用される場合、ロックせずにセッションが上書きされる問題が発生します。そのため、ハッシュを使用してセッションを保存すると、セッション データを変更するデータのみが保存されます。毎回セッション属性を使用すると、ロック処理が回避され、パフォーマンスが向上します。
セッション属性が変更されるたびにストレージがトリガーされる場合、より多くのセッション属性が変更されると複数の Redis 書き込み操作がトリガーされ、パフォーマンスにも影響します。 、セッション書き込みを実行し、変更された属性を書き込みます。
今回セッション変更が行われない場合、redis 書き込みは実行されません。変更されていないセッションが時間しきい値を超えた場合 (セッション更新有効期限のしきい値は変更されない場合) にのみトリガーされます。セッションは保存されるため、セッションの有効期間を延長できます。
2 つの実装方法:
セッション集中ストレージ (redis、memcached、hbase など)。
セッション データを別のサーバーにコピーする 2 つの方法の長所と短所は誰にとっても明らかです。
セッション一元化ストレージに基づく実装計画:
フィルターを追加し、リクエストをインターセプトし、HttpServletRequest をラップする
getSession メソッドを書き換えてセッションから取得します。ストレージ セッション データ、カスタマイズされた HttpSession 実装を返します
新しいセッションを生成した後、セッション ID を cookie に書き込みます
以上がRedisにセッションを保存する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。