离线下载
PDF版 ePub版

郑思愿 · 更新于 2017-12-11 08:00:54

Web 服务器存储 session

HTTP 是无状态的协议,上一条和下一条没有什么联系,要建立联系需要在客户端和服务器作一些数据记录。

在 Web 的应用上,用 Redis/Memcached 来做 session 的存储,以加速后台业务的处理速度。譬如用户的购物车的数据,可以在服务端作存储。传统里把 session 数据库中,可以放在内存中,存储系统就派上有用场了。

下面的一段简单的 Python 的代码,如果 Redis 缓存的数据,先从 Redis 中取,否则从数据库中查询,接着返回数据给到前端。

def GetUserShopingCart(user_session):
    goods = Redis.Get(user_session)
    if goods is not null:
        return goods
    ret = Mysql.Query("select * from user_shoping_cart where sessionid = %d" %
            (user_session))
    return ret

def SaveUserShopingCart(user_session, goods):
    ret = Redis.Set(user_session,goods)
    if not ret:
        Log("save redis error")
    ret = Mysql.Query("insert into user_shoping_cart (sessionid, goods) values"
        "(%s)",goods)
    return ret

大概来看一下后台的设计图:

上一篇: 消息中间件 下一篇: 内存数据管理