当前位置:Gxlcms > PHP教程 > redis存储session的实例

redis存储session的实例

时间:2021-07-01 10:21:17 帮助过:2人阅读

本文主要介绍了redis 替代php文件存储session的实例的相关资料,希望通过本文能帮助到大家,让大家掌握redis 存储session的方法,需要的朋友可以参考下,希望能帮助到大家。

redis 替代php文件存储session的实例

查看实例之前请先了解 PHP session_set_save_handler函数的用法

定义个SessionManager 类


  1. class SessionManager {
  2. private $redis;
  3. public function __construct(){
  4. $this->redis = new Redis();
  5. $this->redis->connect('192.168.0.102', 6379);
  6. $retval =session_set_save_handler(
  7. array($this,"open"),
  8. array($this,"close"),
  9. array($this,"read"),
  10. array($this,"write"),
  11. array($this,"destroy"),
  12. array($this,"gc")
  13. );
  14. session_start();
  15. }
  16. public function open($path,$name){
  17. return true;
  18. }
  19. public function close(){
  20. return true;
  21. }
  22. public function read($id){
  23. $session_value = $this->redis->get($id);
  24. if($session_value){
  25. return $session_value;
  26. }else{
  27. return "";
  28. }
  29. }
  30. public function write($id,$data){
  31. if($this->redis->set($id,$data)){
  32. return true;
  33. }else{
  34. return false;
  35. }
  36. }
  37. public function destroy($id){
  38. if($this->redis->delete($id)){
  39. return true;
  40. }else{
  41. return false;
  42. }
  43. }
  44. public function gc($maxlifetime){
  45. return true;
  46. }
  47. public function __destruct(){
  48. session_write_close();
  49. }
  50. }

创建一个session_set.php 代码如下


  1. include("SessionManager.php");
  2. new SessionManager();
  3. $_SESSION['user_name']="xxdcsnd@sina.com";

创建一个session_set.php 代码如下


  1. include("SessionManager.php");
  2. new SessionManager();
  3. echo $_SESSION['user_name'];

测试输出 结果 xxdcsnd@sina.com

注意 :php.ini session.save-hadler 设置为 user ,否则session_set_save_handler 不会生效

相关推荐:

Redis优化经验总结

PHP分布式中Redis实现Session的方法

php中Redis函数的用法总结

以上就是redis 存储session的实例的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行