首页 >后端开发 >php教程 >session数据保存到memcache的方法讲解

session数据保存到memcache的方法讲解

韦小宝
韦小宝原创
2018-03-14 12:46:421441浏览

本篇文章讲述了session里的数据存入到memcache中,很多同学可能都不太了解session里的数据存入到memcache,那么我们今天就来详细的讲一下session的数据是如何存入到memcache中的吧!

session的数据保存到memcache

session的数据默认情况下,保存在file文件中

但是我们可以通过修改php的配置,让他保存在其他地方

(1)、打开D:\lamp\php/php.inisession.save_handler = files是开着的,把它注释了

 

Session内容保存路径,添加画红线的那句话

修改好了测试一下

Session.php

<?php
session_start();
$_SESSION[&#39;name&#39;]=&#39;whj&#39;;
?>

Get_session.php

<?php
session_start();
$name=$_SESSION[&#39;name&#39;];
echo $name;
?>

输出whj正确

(2)、但是如何获得session变量的时候,不再是name属性,而是通过session_id来保存的

session_id :浏览器访问服务器的时候,服务器给浏览器分配session_id然后在通过session_id找对应的值

例:

session_start();
$_SESSION[&#39;age&#39;]=&#39;whjwhj&#39;;
$sess_id=session_id();
var_dump($sess_id);
//运行出来是string(26) "dmkppdo0qhbkq099fo608an383",在telnet中运行get dmkppdo0qhbkq099fo608an383的出age|s:6:"whjwhj";

如果没有权限修改php的配置怎么办?

ini_set() 可以在php文件中,设置php的一些配置

安全问题:现在谁都可以访问我的memcache,别人访问我的telnet 192.168.2.200也能访问,

解决之道:防火墙

上面session的使用时修改了php.ini配置文件,现在做的是不用修改配置文件直接在文件开头加上:

ini_set(&#39;session.save_handler&#39;,&#39;memcache&#39;);
ini_set(&#39;session.save_path&#39;,&#39;tcp://127.0.0.1:11211&#39;);告诉它是用session保存到memcache的

例:

Ini_session.php

<?php
ini_set(&#39;session.save_handler&#39;,&#39;memcache&#39;);
ini_set(&#39;session.save_path&#39;,&#39;tcp://127.0.0.1:11211&#39;);
session_start();
class Hot{
         public $name;
         public $color;
         public function __construct($name,$color){
                   $this->name=$name;
                   $this->color=$color;
                   }
         }
 $hot=new Hot(&#39;xiaobei&#39;,&#39;white&#39;);
 $_SESSION[&#39;hot&#39;]=$hot;
?>

Get_ini_session.php

<?php
ini_set(&#39;session.save_handler&#39;,&#39;memcache&#39;);
ini_set(&#39;session.save_path&#39;,&#39;tcp://127.0.0.1:11211&#39;);
session_start();
class Hot{
         public $name;
         public $color;
         public function __construct($name,$color){
                   $this->name=$name;
                   $this->color=$color;
                   }
         }
$hot=$_SESSION[&#39;hot&#39;];
var_dump($hot);
?>

7Memcache的生存周期:

重启memcached、重启操作系统会导致全部数据消失。另外,内容容量达到指定值之后,就基于LRU(Least Recently Used)算法自动删除不使用的缓存。

如果设置expire0,表示永远不过期,直到机器重启或服务重启

 相关文章:
php会话控制session、cookie介绍

以上是session数据保存到memcache的方法讲解的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn