CodeIgniter,使用Redis作为会话管理器

时间:2013-06-10 11:22:07

标签: php codeigniter session redis codeigniter-3

github我需要设置的配置声明

$config['sess_use_database'] = TRUE;

这是将会话数据存储在redis中所必需的。

但是,从CodeIgniter's guide如果$config['sess_use_database'] = TRUE;会话类将会话数据存储在数据库中。

我想了解,即使我们将'sess_use_database'配置为true,也会绕过数据库写入。

其次,该方法需要安装phpredis扩展。

我已经从以下github repository安装了另一个CI redis库。

有人可以帮我配置ericterpstra的代码,[文件名:ci_sock / part_two / MY_Session.php]这样它可以使用上面的库而不是phpredis吗?

2 个答案:

答案 0 :(得分:1)

如果我没弄错,phpredis是PHP的C扩展,其中CI redis库是redis客户端的纯PHP实现。您可能已将phpredis安装为扩展程序并仍然使用您的CI redis库(尽管您可能希望将其转储,因为它已不再维护)。

如果您安装phpredis,只需切换php.ini文件中的默认会话处理程序即可绕过整个CodeIgnitor会话配置问题,以使用redis。

以下是https://github.com/phpredis/phpredis#php-session-handler的示例:

session.save_handler = redis
session.save_path = "tcp://host1:6379?weight=1, tcp://host2:6379?weight=2&timeout=2.5, tcp://host3:6379?weight=2"

这将透明地使用您的redis存储来存储会话。

答案 1 :(得分:1)

Codeigniter版本3

支持

Redis会话

编辑配置文件

$config['sess_driver'] = 'redis'; //enable redis session
$config['sess_save_path'] = 'tcp://localhost:6379'; // redis hostname:port 

Official Documentation Redis Driver