Redis使用示例及在PHP环境中用redis存储session

   在文件夹redis-3.2.0下

   1. 启动redis服务

nohup ./src/redis-server redis.conf &

2. 停止服务
#使用客户端
./src/redis-cli shutdown
#因为Redis可以妥善处理SIGTERM信号,所以直接kill -9也是可以的
kill -9 PID


#使用`redis-cli`客户端检测连接是否正常
./src/redis-cli
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set key "hello world"
OK
127.0.0.1:6379> get key
"hello world"


在PHP环境中把session 存到redis

设置php.ini

  session.save_handler = redis  

  session.save_path="127.0.0.1:6379"


测试redis存储session
<?php
//如果未修改php.ini下面两行注释去掉
//ini_set('session.save_handler', 'redis');
//ini_set('session.save_path', 'tcp://127.0.0.1:6379');
session_start();
$_SESSION['sessionid'] = 'this is session content!';
echo $_SESSION['sessionid'];
echo '<br/>';

$redis = new Redis();
$redis->connect('ipaddress', 6379);
//redis用session_id作为key并且是以string的形式存储
echo $redis->get('PHPREDIS_SESSION:' . session_id());
?>

  输出:

  1. this is session content!  
  2. sessionid|s:24:"this is session content!";  

从输出内容可以看到,无论从$_SESSION['key'],还是$redis->get('PHPREDIS_SESSION:'.session_id())都可以输出内容,证明session确实已经存储到redis中。

如果设置php.ini以后通过phpinfo()查看session.save_handler和session.save_path并没有变化,还是原来的file,那就是因为有其他conf覆盖了这些配置。很可能是/etc/php-fpm.conf或者/etc/php-fpm.d/*.conf,找到并修改,重启php-fpm即可。



原文地址:https://www.cnblogs.com/beyang/p/8301633.html