码迷,mamicode.com
首页 > Web开发 > 详细

node.js中结合redis实现session

时间:2015-04-15 06:09:49      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:redis   node.js   

        这里的session机制很简单,用户登录之后,给用户生成一个session,包含用户的唯一编号ID,过期时间expires,以及用户的用户的sessionID。


        创建了session之后,将session存放到redis数据库中,现在也只是测试了可以存放数据,并没有进行redis的进一步操作,今后将对redis进行集群操作,虽然小,但是一定要五脏俱全,会写两个类,一个专门用来写,针对主库,然后另一个专门用来读,针对从库。


        这需要一个key值与redis从库的连接地址相关联,因为当存在多个key值时,读取是随机的,但是想想,又觉得没有必要,因为主库对从库是完全同步的,就是主库的数据会拷贝完整的一份到从库,先这样想着吧。


        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保存sessionID,然后当页面跳转的时候,通过读取redis看看sessionID是否存在,来判断用户信息是否过期,没有的话,就更新一下redis的过期时间,因为redis中设置了过期时间,所以sessionID不存在的话,就跳转用户到登录页面


        ........

node.js中结合redis实现session

标签:redis   node.js   

原文地址:http://blog.csdn.net/whynottrythis/article/details/45050995

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!