php 怎么把session写入redis

Posted

tags:

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

一、 安装phpredis扩展
php连接redis需要安装phpredis扩展。
下载地址:https://github.com/phpredis/phpredis/releases,选用相应版本。
笔者用的是php5.6.29,下载了phpredis-3.0.0安装出了问题,于是换成phpredis-2.2.8,正常。
# tar zxvf phpredis-2.2.8.tar.gz && cd phpredis-2.2.8
# /usr/local/php/bin/phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config
# make && make install
正常情况下会提示在下面目录下生成redis.so文件
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
# sed -i '$aextension="redis.so"' /usr/local/php/etc/php.ini
# service httpd restart
验证:
# php -i | grep redis | grep -xq redis && echo ok || echo "phpredis extended failure"
二、 配置php连接redis(笔者使用的阿里云redis)
# sed -i 's/session.save_handler.*/session.save_handler = redis/' /usr/local/php/etc/php.ini
# sed -i '/session.save_handler/asession.save_path ="tcp://xxxx.rds.aliyuncs.com?auth=redis密码"' /usr/local/php/etc/php.ini
# service httpd restart
参考技术A php有个函数session_set_save_handler,可以将session信息入库,存储在mysql和redis都可以本回答被提问者采纳

在php中 为啥不能使用redis类

  redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis 是一个高性能的key-value数据库。redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。
  若想在PHP中使用redis,首先要先安装redis。然后在PHP中配置扩展。
  安装redis。
  首先下载好redis安装文件,解压到D盘或其他盘。
  然后通过Dos命令行进行安装。
  把这个文件夹复制到其它地方,比如D:\\redis 目录下。
  打开一个cmd窗口 使用cd命令切换目录到D:\\redis 运行 redis-server.exe redis.conf
  如果想方便的话,可以把redis的路径加到系统的环境变量里,这样就省得再输路径了,后面的那个redis.conf可以省略,如果省略,会启用默认的。
这时候另启一个cmd窗口,原来的不要关闭,不然就无法访问服务端了
切换到redis目录下运行 redis-cli.exe -h 127.0.0.1 -p 6379

这时候,就已经完成配置了。
完成了配置之后,要在PHP中添加redis的扩展,之后才可以用PHP灵活的使用它。
在windows下安装php的redis扩展非常简单,下载一个.dll扩展包放到php的ext目录下,在php.ini里边添加一行配置就可以了。

php代码测试

redis=newRedis();redis->connect(‘127.0.0.1′,6379);
redis−>set(‘test′,′helloworld!′);echoredis->get(‘test’);

输出hello world!
参考技术A 1、安装php扩展
a)安装php扩展phpredis:

[plain] view plaincopy
[root@xsf002 tool]# git clone https://github.com/nicolasff/phpredis.git phpredis
[root@xsf002 tool]# cd phpredis/
[root@xsf002 phpredis]# /usr/local/php/bin/phpize #<span style="text-indent: 20px;">假设 php目录:</span><span style="text-indent: 20px;">/usr/local/php</span>
[root@xsf002 phpredis]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@xsf002 phpredis]# make
[root@xsf002 phpredis]# make install
如果顺利,将得到类似如下提示:

[plain] view plaincopy
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/
php扩展文件目录下,将有个redis.so文件。

b)加载redis.so
在php.ini 文件中,添加配置:

[plain] view plaincopy
[redis]
extension=redis.so
重启web服务器,echo phpinfo()
参考技术B 在Mac OS上安装redis
首先是安装,它会默认安装到/usr/local/bin下

代码如下:

cd /tmp
wget http://redis.googlecode.com/files/redis-2.6.9.tar.gz
tar -zxf redis-2.6.9.tar.gz
cd redis-2.6.9
make
sudo make install

以上是关于php 怎么把session写入redis的主要内容,如果未能解决你的问题,请参考以下文章

session 存redis

php session存入redis

php session 存储到redis

PHP 配置 Session存储方式 为Redis

php Session存储到Redis的方法

PHP分布式中Redis实现Session