在php中,SESSION的数据默认是存放到文件中,这样性能不仅不高,而且不利于扩展。在搭建集群后,默认存放到文件中就不适用了。所以,我们一般将SESSION自定义,让SESSION中的数据存放到 ​​数据库​​​中、​​Memcache​​​中、​​Redis​​​中。今天介绍如何将SESSION数据存放到​​Redis​​中。

步骤如下

  • 修改php.ini

​session.save_handler = redis​


​session.save_path = "tcp://127.0.0.1:6379"​

  • 重启apache

不过以上这种方式,扩展性不好,因为只能使用到一台redis服务器的资源。

方式二:通过 ini_set() 函数设置

代码如下

ini_set("session.save_handler", "redis");​​
​​ini_set("session.save_path", "tcp://127.0.0.1:6379");

如果配置文件 /etc/redis.conf 里设置了连接密码 requirepass,保存 session 的时候会报错,save_path 这样写 tcp://127.0.0.1:6379?auth=authpwd 即可。

写到最后

​注意:以上前提:这样设置将session数据放到redis中,前提是php所在的服务器必须安装了redis的phpredis扩展。否则php会报错。​