node.jsでredisと組み合わせてセッションを実現
ここでのセッションメカニズムは簡単で,ユーザがログインした後,ユーザの一意の番号ID,期限切れexpires,およびユーザのセッションIDを含むセッションをユーザに生成する.
セッションを作成した後、セッションをredisデータベースに格納し、現在もデータを格納できるようにテストしただけで、redisのさらなる操作は行われていません.今後、redisをクラスタ操作します.小さいですが、必ず五臓がそろっていて、2つのクラスを書きます.1つは書くために、メインライブラリに対して、もう1つは読むために、ライブラリに対して書きます.
これは、複数のkey値が存在する場合に読み取りがランダムであるため、redisスレーブライブラリの接続アドレスに関連付けられる必要があるが、考えてみれば、スレーブライブラリに対してプライマリライブラリが完全に同期しているため、プライマリライブラリのデータがスレーブライブラリに完全にコピーされるので、まずそう考えておきましょう.
redisは主にredisというモジュールを使用しており、モジュールには多くの方法がありますが、今は記録するだけです.
また、非同期の特徴に注意します.例えば、ここでは、ページのコードはredis操作の後ですが、ページが再ジャンプした後、redisの操作が実行されます.
ページジャンプ後にcacheを設定してセッションIDを保存し、ページジャンプ時にredisを読み込んでセッションIDが存在するかどうかを確認することで、ユーザ情報が期限切れであるかどうかを判断します.なければ、redisの期限切れを更新します.redisに期限切れが設定されているので、セッションIDが存在しない場合は、ユーザをログインページにジャンプします
........
セッションを作成した後、セッションをredisデータベースに格納し、現在もデータを格納できるようにテストしただけで、redisのさらなる操作は行われていません.今後、redisをクラスタ操作します.小さいですが、必ず五臓がそろっていて、2つのクラスを書きます.1つは書くために、メインライブラリに対して、もう1つは読むために、ライブラリに対して書きます.
これは、複数のkey値が存在する場合に読み取りがランダムであるため、redisスレーブライブラリの接続アドレスに関連付けられる必要があるが、考えてみれば、スレーブライブラリに対してプライマリライブラリが完全に同期しているため、プライマリライブラリのデータがスレーブライブラリに完全にコピーされるので、まずそう考えておきましょう.
redisは主にredisというモジュールを使用しており、モジュールには多くの方法がありますが、今は記録するだけです.
/**
* @description hash ,
* @param {string}
* @param {json}
* @returns {undefined}
*/
exports.hmset = function (key, json, expires) {
try {
console.log("--hmset function begin--");
client.hmset(key, json);
if (expires) {
client.expire(key,expires);
}
else {
client.expire(key,60 * 30);
}
}
catch (err) {
console.log("lalalla:"+err);
}
}
値を保存するときはパラメータのフォーマットに注意し、redisのエラープロンプトに注意し、問題を迅速に位置決めすることができます.また、非同期の特徴に注意します.例えば、ここでは、ページのコードはredis操作の後ですが、ページが再ジャンプした後、redisの操作が実行されます.
ページジャンプ後にcacheを設定してセッションIDを保存し、ページジャンプ時にredisを読み込んでセッションIDが存在するかどうかを確認することで、ユーザ情報が期限切れであるかどうかを判断します.なければ、redisの期限切れを更新します.redisに期限切れが設定されているので、セッションIDが存在しない場合は、ユーザをログインページにジャンプします
........