鍍金池/ 教程/ 大數(shù)據(jù)/ Web 服務(wù)器存儲 session
Redis 數(shù)據(jù)淘汰機(jī)制
積分排行榜
小剖 Memcache
Redis 數(shù)據(jù)結(jié)構(gòu) intset
分布式鎖
從哪里開始讀起,怎么讀
Redis 數(shù)據(jù)結(jié)構(gòu) dict
不在浮沙筑高臺
Redis 集群(上)
Redis 監(jiān)視器
源碼閱讀工具
Redis 日志和斷言
內(nèi)存數(shù)據(jù)管理
Redis 數(shù)據(jù)結(jié)構(gòu)綜述
源碼日志
Web 服務(wù)器存儲 session
消息中間件
Redis 與 Lua 腳本
什么樣的源代碼適合閱讀
Redis 數(shù)據(jù)結(jié)構(gòu) sds
Memcached slab 分配策略
訂閱發(fā)布機(jī)制
Redis 是如何提供服務(wù)的
Redis 事務(wù)機(jī)制
Redis 集群(下)
主從復(fù)制
Redis 應(yīng)用
RDB 持久化策略
Redis 數(shù)據(jù)遷移
Redis 事件驅(qū)動詳解
初探 Redis
Redis 與 Memcache
AOF 持久化策略
Redis 數(shù)據(jù)結(jié)構(gòu) redisOb
作者簡介
Redis 數(shù)據(jù)結(jié)構(gòu) ziplist
Redis 數(shù)據(jù)結(jié)構(gòu) skiplist
Redis 哨兵機(jī)制

Web 服務(wù)器存儲 session

HTTP 是無狀態(tài)的協(xié)議,上一條和下一條沒有什么聯(lián)系,要建立聯(lián)系需要在客戶端和服務(wù)器作一些數(shù)據(jù)記錄。

在 Web 的應(yīng)用上,用 Redis/Memcached 來做 session 的存儲,以加速后臺業(yè)務(wù)的處理速度。譬如用戶的購物車的數(shù)據(jù),可以在服務(wù)端作存儲。傳統(tǒng)里把 session 數(shù)據(jù)庫中,可以放在內(nèi)存中,存儲系統(tǒng)就派上有用場了。

下面的一段簡單的 Python 的代碼,如果 Redis 緩存的數(shù)據(jù),先從 Redis 中取,否則從數(shù)據(jù)庫中查詢,接著返回?cái)?shù)據(jù)給到前端。

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

大概來看一下后臺的設(shè)計(jì)圖:

http://wiki.jikexueyuan.com/project/redis/images/w2.png" alt="" />

上一篇:不在浮沙筑高臺下一篇:源碼日志