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
大概来看一下后台的设计图: