将php的session存放到redis里面

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将php的session存放到redis里面相关的知识,希望对你有一定的参考价值。

通常我们将session存储到memcached,但是有时候老大让你将session存储到Redis怎么办,因此有必要了解下如何将session存到redis。


step1、服务器上需要安装redis扩展(以php7为例)

# 以安装php7为例,简单起见直接安装了全部的包
yum install php70w.x86_64 php70w-cli.x86_64 php70w-common.x86_64 php70w-gd.x86_64 php70w-ldap.x86_64 php70w-mbstring.x86_64 php70w-mcrypt.x86_64 php70w-mysql.x86_64 php70w-pdo.x86_64 php70w-fpm php70w-devel

# pecl install redis
# vim /etc/php.ini 加入一行: extension = redis.so



step2、修改php.ini配置

vim /etc/php.ini 相关部分代码如下:

# egrep -v ‘^;|^$‘ /etc/php.ini|grep session

session.save_handler = redis     # 默认的设置是file,这里改成redis

session.save_path = "tcp://192.168.2.11:6379?auth=passwd" # 这里填redis的连接配置参数
;session.save_path = "tcp://192.168.2.11:6379"  # 如果redis不带密码,则使用这种配置

session.use_strict_mode = 0
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID     # 这个名字可以自己改
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.referer_check =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 5


存储到redis里面的keys的名称是类似 PHPREDIS_SESSIONxxxxxxxxx ,我们只需要连接到redis,并执行 keys PHPREDIS_SESSION* 即可列出全部的sessionkeys

例如:

> keys PHPREDIS_SESSION* 
"PHPREDIS_SESSION:55fsmg64ooebqqaotlue6050g7"
> get "PHPREDIS_SESSION:55fsmg64ooebqqaotlue6050g7"   # 即可查看到session里面的数据。




以上是关于将php的session存放到redis里面的主要内容,如果未能解决你的问题,请参考以下文章

在tomcat集群下利用redis实现单点登陆

PHP将 SESSION 数据保存到 Redis

PHP将 SESSION 数据保存到 Redis

php Session存储到Redis的方法

flask-session组件:将cookie中的session值存放至redis

php session 保存到redis 实现session的共享