Redis是一个开源的key-value类型的数据库缓存和存储系统,同时Redis提供了丰富的数据结构用来支持多样的业务chan场景,比如hashes,lists,sets还有ordered sets及其他类型。云数据库Redis提供了兼容Redis协议的数据库服务,提供单机和集群两种模式,提供了全套的容灾切换、故障迁移、在线扩容、性能优化的数据库解决方案。本文我们将介绍如何使用阿里云Redis服务作为PHP服务的session存储。PHP的session存储作为php会话信息的存储单元,默认的PHP使用文件来存储session会话信息。同时PHP支持使用扩展的存储单元来作为会话信息的存储,通过扩展的session能够满足多台PHP服务器共享会话信息。
Redis云服务提供了文本协议进行访问,我们可以通过telnet进行服务的简单测试,实例的域名可以在控制台点击实例详情页面查看到,测试方法如下:
[root@ECS~]# telnet HOST 6379 Trying IP... Connected to HOST. Escape character is '^]'. auth PASSWORD #回车 +OK #回复 ping #回车 +PONG #回复 quit #回车 +OK #回复 Connection closed by foreign host.如果购买的实例能够按上面正常回复说明购买的实例能够正常使用。
PHP的会话存储定义在php.ini文件中,用户可以通过执行以下PHP代码找到PHP配置文件的路径。
<?php phpinfo() ?>通常如果使用apache对应的配置文件在/etc/php5/apache2/php.ini,如果是nginx则在/usr/local/php/etc/php.ini,通过sudo vim 文件路径来修改对应的PHP配置如下,其中HOST还有PASSWORD需要换成对应实例域名和密码。
session.save_handler = redis session.save_path = "tcp://HOST:6379?auth=PASSWORD"重启PHP服务则后续PHP的session信息将存储在阿里云Redis上,用户可以随着业务量的增长来随时对云Redis扩容。
云数据库Redis提供了方便的Redis云服务,通过主备来保证实例的高可用,并提供了弹性的扩展能力,用户可以按需购买使用,同时阿里云Redis可以作为PHP的session信息存储管理单元,解决用户分布式session存储的困扰
