node.js中结合redis实现session

页面导航:首页 > 网络编程 > JavaScript > node.js中结合redis实现session

node.js中结合redis实现session

来源: 作者: 时间:2016-02-02 09:58 【

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

这里的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不存在的话,就跳转用户到登录页面

 

........

Tags:

文章评论

最 近 更 新
热 点 排 行
Js与CSS工具
代码转换工具

<