CodeIgniter在Redis中存储PHP会话

时间:2014-12-22 02:02:06

标签: php codeigniter redis

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

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

2 个答案:

答案 0 :(得分:1)

Codeigniter版本3

支持Redis会话

打开并编辑

  

应用/配置/ 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

上的答案

答案 1 :(得分:0)

将您的会话存储在数据库中。 要存储会话,必须首先为此目的创建数据库表。以下是会话类所需的基本原型(用于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`)
);

SET

$config['sess_use_database'] = TRUE;

config.php文件中。

启用后,Session类会将会话数据存储在数据库中。

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

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