session 重写进入redis测试
生活随笔
收集整理的這篇文章主要介紹了
session 重写进入redis测试
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在實際業務中,當session存儲過多 或者操作頻繁,業務逐漸擴展的時候,文件存儲已經無法滿足session操作速度和需求,可以考慮用數據庫或者nosql的redis來存儲session,本文講解如何用redis存儲。數據庫可以以此類推。
代碼如下:
<?php global $redis;//聲明全局變量redis $redis=new Redis();//實例化redis $redis->connect('127.0.0.1', 6379);//連接redis $redis->auth("redis的密碼");//認證redis 請修改為你的密碼 如果沒有設置密碼 注釋該行代碼 //從redis取數據 function get_redis($key) {global $redis;//聲明全局變量redisreturn $redis->get($key);//get獲取值 } //向redis存數據 function set_redis($key,$data,$expire_time=1800) {global $redis;//聲明全局變量redis$redis->set($key,$data,$expire_time);//set設置值 } //開啟session function sess_open() {} //關閉session function sess_close() {} //讀取session sess_id就是 session_id function sess_read($sess_id) { $val=get_redis($sess_id);return(unserialize($val)); } //寫入session sess_id就是 session_id sess_data就是session的整個數據 function sess_write($sess_id, $sess_data) {set_redis($sess_id,serialize($sess_data));session_commit(); } //清除session function sess_destroy() {} function sess_gc() {} //聲明重寫 session_set_save_handler('sess_open', 'sess_close','sess_read','sess_write','sess_destroy','sess_gc' );session_start(); $_SESSION['user']=array("name"=>"hello","tel"=>"world"); register_shutdown_function('session_write_close');//注冊事件 頁面結束寫入session 關閉session exit();?>redis管理工具中看到的截圖
?同樣的,如果是數據庫存儲的話,可以建立一個 key value的數據庫 session_id session_data兩個字段就夠了用來存儲和更新。
Tips:session不采用文件存儲還有一個好處 就是能夠跨站共享,因為session被存儲到后端的nosql數據庫了,只要都連接這個后端數據,就能夠共享session
轉載于:https://www.cnblogs.com/lizhaoyao/p/6136513.html
總結
以上是生活随笔為你收集整理的session 重写进入redis测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java 关于File使用
- 下一篇: [R]R语言中的%%和%.%