【问题标题】:CodeIgniter, Using Redis as session managerCodeIgniter,使用 Redis 作为会话管理器
【发布时间】:2013-06-06 00:58:10
【问题描述】:

来自github的配置声明我需要设置

$config['sess_use_database'] = TRUE;

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

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

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

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

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

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

【问题讨论】:

    标签: php codeigniter session redis codeigniter-3


    【解决方案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

    【讨论】:

      【解决方案2】:

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

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

      这是来自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 存储来存储会话。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-01-23
        • 2013-08-11
        • 1970-01-01
        • 1970-01-01
        • 2019-07-14
        • 1970-01-01
        • 2017-03-09
        • 1970-01-01
        相关资源
        最近更新 更多