让php Session 存入 redis 配置方法
-
首先要做的就是安装redis
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | Installation Download, extract and compile Redis with: $ wget http: //download.redis.io/releases/redis-2.8.19.tar.gz $ tar xzf redis-2.8.19.tar.gz $ cd redis-2.8.19 $ make The binaries that are now compiled are available in the src directory. Run Redis with: $ src/redis-server You can interact with Redis using the built-in client: $ src/redis-cli redis> set foo bar OK redis> get foo "bar" |
-
然后是安装phpredis扩展 redis.so
安装方法参考:http://www.lecloud.net/post/3378834922/install-redis-php-extension-phpredis-with
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | ///////////////////////////// //以下代码为参考网站安装方法,请根据自己的实际安装位置自由调整, ///////////////////////////// cd /usr/local sudo mkdir src cd /usr/local/src sudo mkdir phpredis-build cd phpredis-build sudo git clone --depth 1 git: //github.com/owlient/phpredis.git cd phpredis sudo phpize sudo ./configure sudo make sudo make install cd /usr/local/lib/php5/ sudo gedit php.ini 如果没有配置 extension_dir 的话请配置到你的extension的路径 cp redis.so /usr/local/lib/php5/extension/ 加入一行: extension = redis.so 重启nginx 和 php-fpm 就输出phpinfo 就能看到redis 扩展安装完成 |
-
设置php.ini
找到; session.save_handler = files这一行 ,修改为 session.save_handler = redis,把原来的session存储方式改微redis方式这样会提高速度,原因是redis是在内存读取必然比在文件读取要快一些
找到; session.save_path = "/tmp"这一行 ,修改为 session.save_path = "tcp://127.0.0.1:8888",这是指向了本地的tcp服务,这个服务一会是由我们的redis启动
重启nginx 和 php-fpm 就输出phpinfo 就能看到session 保存方式和路径发生了改变
-
启动redis服务
1redis-server --port 8888 &
编写php代码
12345678910111213141516171819<?php
header(
"Content-type:text/html;charset=utf-8"
);
session_start();
//这个很重要
$_SESSION
[
'test_session'
]= @
array
(
'name'
=>
'fanqie'
,
'ccc'
=>
'hello redis '
);
$redis
=
new
redis();
$redis
->connect(
'127.0.0.1'
, 8888);
echo
'sessionid>>>>>>> PHPREDIS_SESSION:'
. session_id();
echo
'<br/>'
;
echo
'<br/>'
;
//redis用session_id作为key并且是以string的形式存储
echo
'通过php用redis获取>>>>>>>'
.
$redis
->get(
'PHPREDIS_SESSION:'
. session_id());
echo
'<br/>'
;
echo
'<br/>'
;
echo
'通过php用session获取>>>>>>><br/>'
;
echo
'<pre>'
;
var_dump(
$_SESSION
[
'test_session'
]);
echo
'</pre>'
;
页面输出,我们可以看出我们已经成功存储并且通过redis成功获取到了存储的值
1234567891011sessionid>>>>>>> PHPREDIS_SESSION:fmd75d3dfrlkp43eh567f7dsi5
通过php用redis获取>>>>>>>test_session|a:2:{s:4:
"name"
;s:6:
"fanqie"
;s:3:
"ccc"
;s:12:
"hello redis "
;}
通过php用session获取>>>>>>>
array
(2) {
[
"name"
]=>
string(6)
"fanqie"
[
"ccc"
]=>
string(12)
"hello redis "
}
使用redis客户端查看在redis库中已经存储可以查询到hello redis 这条记录了
12345678dangcheng@dangcheng-pc:~$ redis-cli -p 8888
127.0.0.1:8888> select 0
OK
127.0.0.1:8888> keys *
1)
"PHPREDIS_SESSION:fmd75d3dfrlkp43eh567f7dsi5"
127.0.0.1:8888> get PHPREDIS_SESSION:fmd75d3dfrlkp43eh567f7dsi5
"test_session|a:2:{s:4:\"name\";s:6:\"fanqie\";s:3:\"ccc\";s:12:\"hello redis \";}"
127.0.0.1:8888>
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步