国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Redis > 正文

session 加入redis的實現代碼

2020-03-22 19:45:56
字體:
來源:轉載
供稿:網友
Session簡介session,中文經常翻譯為會話,其本來的含義是 指有始有終的一系列動作/消息,比如打電話時從拿起電話撥號到掛斷電話這中間的一系列過程可以稱之為一個session。有時候我們可以看到這樣的話“在 一個瀏覽器會話期間,...”,這里的會話一詞用的就是其本義,是指從一個瀏覽器窗口打開到關閉這個期間①。最混亂的是“用戶(客戶端)在一次會話期間”這樣一句話,它可能指用戶的一系列動作(般情況下是同某個具體目的相關的一系列動作,比如從登錄到選購商品到結賬登出這樣一個網上購物的過程,有時候也被稱為一個transaction),然而有時候也可能僅僅是指一次連接,也有可能是指含義①,其中的差別只能靠上下文來推斷②。
在本文中,使用中文“瀏覽器會話期間”來表達含義①,使用“session機制”來表達含義④,使用“session”表達含義⑤,使用具體的“HttpSession”來表達含義⑥
為什么要把SESSION保存在緩存
就php來說,語言本身支持的session是以文件的方式保存到磁盤文件中,保存在指定的文件夾中,保存的路徑可以在配置文件中設置或者在程序中使用函數session_save_path()進行設置,但是這么做有弊端,
第一就是保存到文件系統中,效率低,只要有用到session就會從好多個文件中查找指定的sessionid,效率很低。
第二就是當用到多臺服務器的時候可能會出現,session丟失問題(其實是保存在了其他服務器上)。
當然了,保存在緩存中可以解決上面的問題,如果使用php本身的session函數,可以使用 session_set_save_handler()函數很方便的對session的處理過程進行重新控制。如果不用php的session系列函數, 可以自己編寫個類似的session函數,也是可以的,我現在做的這個項目就是這樣,會根據用戶的mid、登錄時間進行求hash作為 sessionId,每次請求的時候都必須加上sessionId才算合法(第一次登錄的時候是不需要的,這個時候會創建sessionId,返回給客戶 端),這么做也很方便、簡潔高效的。當然了,我這篇文章主要說的是在php自身的SESSION中”做做手腳”。
SESSION保存在緩存中
php將緩存保存到redis中,可以使用配置文件,對session的處理和保存做修改,當然了,在程序中使用ini_set()函數去修改也可以,這個很方便測試,我這里就使用這種方式,當然了,要是生產環境還是建議使用配置文件。如果想簡單操作session入redis操作可以將一下代碼運行一下 php ini_set("session.save_handler", "redis"); ini_set("session.save_path", "tcp://localhost:6379"); session_start(); header("Content-type:text/html;charset=utf-8"); if(isset($_SESSION['view'])){ $_SESSION['view'] = $_SESSION['view'] + 1; }else{ $_SESSION['view'] = 1; echo "【view】{$_SESSION['view']}"; //這里設置session.save_handler方式為redis,session.save_path為redis的地址和端口,設置之后刷新,再回頭查看redis,會發現redis中的生成了sessionId,sessionId和瀏覽器請求的是一樣的,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泸州市| 绥江县| 新宾| 屯昌县| 武平县| 葫芦岛市| 枣阳市| 吉安县| 关岭| 玉山县| 万源市| 公主岭市| 六安市| 潼南县| 长治市| 新昌县| 偃师市| 勃利县| 泰州市| 上犹县| 海兴县| 芮城县| 平山县| 英吉沙县| 门源| 灌阳县| 全州县| 涞源县| 化州市| 图们市| 宝坻区| 大田县| 大厂| 郯城县| 武邑县| 天气| 康乐县| 万宁市| 合肥市| 隆子县| 义马市|