在文件夹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()); ?>
输出:
- this is session content!
- 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即可。