redis是一個(gè)開源的使用ansi?c語(yǔ)言編寫、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、key-value數(shù)據(jù)庫(kù)。session在計(jì)算機(jī)中,尤其是在網(wǎng)絡(luò)應(yīng)用中,稱為“會(huì)話控制”;session對(duì)象存儲(chǔ)特定用戶會(huì)話所需的屬性及配置信息。
redis和session的區(qū)別
原生session在服務(wù)器端存儲(chǔ)具有更高的可靠性,可以存儲(chǔ)在文件、數(shù)據(jù)庫(kù)、內(nèi)存中。
使用Session維護(hù)用戶登錄轉(zhuǎn)態(tài)的過程:
用戶進(jìn)行登錄時(shí),提交的登錄表單,放入request;
服務(wù)器端校驗(yàn)用戶名和密碼;
通過后將用戶信息存儲(chǔ)到Redis中,在數(shù)據(jù)庫(kù)中的key為session_id;
服務(wù)器返回的response中的set-cookie字段包含該session_id,客戶端收到后將其值存入瀏覽器中;
客戶端之后的操作的request中都包含session_id,服務(wù)器收到后提取出并在Redis中拿到該session,完成業(yè)務(wù)操作;
使用Redis來(lái)實(shí)現(xiàn)session的共享和存儲(chǔ),必須要保證session_id,不會(huì)被輕易獲取和破解,并設(shè)置合理的失效時(shí)間,對(duì)敏感操作必須再次校驗(yàn)用戶。
更多Redis相關(guān)知識(shí),請(qǐng)?jiān)L問Redis使用教程欄目!