現在、SESSION_ENGINEをuser_sessions.backends.db
(私はthis外部ライブラリを使用しています)と設定されたDjangoアプリケーションを実行しています。 Django自身のビルトインセッションは素晴らしいですが、すべてのデータはbase64でエンコードされたデータに隠されています。このライブラリは、セッションオブジェクトを他のORMオブジェクトのようにアクセス可能にします。カスタムバックエンドからキャッシュバックエンドにセッションデータを移行する(Django)
このライブラリの依存関係を削除する必要があります。性能向上のためキャッシュにセッションエンジンを変更しました。
この変更を現在のセッションデータを破損することなくに変更しています。これはこの質問に関するものです。その性質上、ライブラリには当然db
以外のバックエンドは含まれていないので、私はそれを拡張する必要があります。
どのようにこの問題にアプローチする必要がありますか?例えば、私の頭では:i)このライブラリがセッションデータを保存するdbテーブルの内容を調べるべきである、ii)書き込みごとにこのデータをキャッシュメモリに保存する機能を書く、iii)読み込みに移行するキャッシュから(フォールバックとしてのdbを使用して)
これは正しいと思われますか?これはかなり複雑な作業なので、この時点では何も知らないことが大好きです。前もって感謝します。
私はこれをやります:この現在のセッションデータをDjangoのセッションデータにシリアル化する方法を理解します。現在のセッションIDをDjangoのセッションフレームワークが使用するキーに直接マッピングできるかどうかを確認してください。すべてのセッションデータを新しいセッションストレージに移行します。古いセッションエンジンのクッキーキーを新しいセッションエンジンに変換するためのミドルウェアを作成し、Djangoのセッションエンジンに透過的にします。 (キーを再利用できない場合は、マップold_key => new_keyをDjangoのキャッシュに書き込み、それを照会してください)。 – Tiago