【问题标题】:CodeIgniter store PHP session in RedisCodeIgniter 在 Redis 中存储 PHP 会话
【发布时间】:2015-02-20 03:23:20
【问题描述】:

我正在关注an article 以将 PHP 会话保存在 Redis 而不是文件系统中(这样我就可以与 node.js 共享会话)

我了解session_set_save_handler 的工作原理,但我对如何使用 CodeIgniter 框架进行设置感到困惑?我应该扩展 CI_Session 类并将 session_set_save_handler 放在那里吗?

【问题讨论】:

标签: php codeigniter redis


【解决方案1】:

将您的会话存储在数据库中。 为了存储会话,您必须首先为此创建一个数据库表。这是会话类所需的基本原型(用于 MySQL):

CREATE TABLE IF NOT EXISTS  `ci_sessions` (
    session_id varchar(40) DEFAULT '0' NOT NULL,
    ip_address varchar(45) DEFAULT '0' NOT NULL,
    user_agent varchar(120) NOT NULL,
    last_activity int(10) unsigned DEFAULT 0 NOT NULL,
    user_data text NOT NULL,
    PRIMARY KEY (session_id),
    KEY `last_activity_idx` (`last_activity`)
);

设置

$config['sess_use_database'] = TRUE;

config.php 文件中。

一旦启用,Session 类会将会话数据存储在 DB 中。

确保您在配置文件中也指定了表名:

$config['sess_table_name'] = 'ci_sessions';

【讨论】:

    【解决方案2】:

    Codeigniter 版本 3

    支持 Redis 会话

    打开和编辑

    应用程序/config/config.php

    要启用 Redis,请将会话驱动程序设置为“redis”

    $config['sess_driver'] = 'redis';
    

    redis服务器路径示例

    redis://hostname:port 或 tcp://hostname:port

    设置 sess_save_path localhost 的值进行本地测试

    $config['sess_save_path'] = 'tcp://localhost:6379';
    

    在您的本地主机上测试 Redis。

    请参考我在how to install Redis for Windows的回答

    【讨论】:

      猜你喜欢
      • 2014-05-20
      • 1970-01-01
      • 2019-05-08
      • 2012-10-08
      • 1970-01-01
      • 2019-03-10
      • 2015-01-14
      • 2020-05-31
      • 1970-01-01
      相关资源
      最近更新 更多