session是一个用来可跨页面并且只在服务器上运行的全局变量了,它的作用常用于数据的安全验证了,下面小编整理了一篇php中利用redis存储session实例,大家有兴趣可进来看看。
phpinfo,可以看到session存储,可以使用files user memcache redis,使用数据库存储session的好处是较之文件存储,在大用户量下速度更快,性能更优,而且如果做分布式系统,肯定是需要使用数据库存储session的。这里总结下使用redis存储session的两种方式
使用mysql存储session大家应该使用过,session生命周期的原理其实就是session.gcprobability,session.gcdivisor这两个参数和最大生命时间决定的。每次php请求,有一定几率触发session的检测机制。我们使用session_setsavehandler,是可以重定义session的行为的。这里有两种方式实现redis存储session
代码实例1:
代码如下 | 复制代码 | ||||
ini_set('session.gc_maxlifetime', 3600); ini_set("session.save_handler","redis"); ini_set("session.save_path","tcp://127.0.0.1:6379?auth=authpwd"); session_start(); //$_SESSION['session'] = 'this is session content!'; echo $_SESSION['session']; echo session_id().' $redis = new redis(); $redis->connect('127.0.0.1', 6379); //redis用session_id作为key并且是以string的形式存储 echo $redis->get('PHPREDIS_SESSION:' . session_id()); ?> 代码实例2:
|