2013-06-10 3 views
4

От github конфигурации утверждает, что мне нужно установитьCodeIgniter, используя Redis в качестве менеджера сеанса

$config['sess_use_database'] = TRUE; 

Это требуется для хранения данных сессии в Redis.

Однако, из CodeIgniter's guide Если класс $config['sess_use_database'] = TRUE; будет хранить данные сеанса в БД.

Я хочу понять, как запись базы данных обходит, даже если мы установили config 'sess_use_database' в true.

Во-вторых, для этого метода требуется расширение phpredis.

У меня уже есть библиотека CI redis, установленная из следующих github repository.

Может кто-нибудь помочь мне настроить код из ericterpstra, [Имя файла: ci_sock/part_two/MY_Session.php], чтобы он мог использовать указанную выше библиотеку вместо phpredis?

ответ

1

Если я не ошибаюсь, phpredis является расширением C для PHP, где библиотека CI redis является чистой реализацией PHP клиента redis. Возможно, у вас есть phpredis, установленный как расширение, и по-прежнему используйте свою библиотеку CI redis (хотя вы можете захотеть сбросить ее, поскольку она больше не поддерживается).

Если вы установите phpredis, вы можете обойти всю конфигурацию сеанса CodeIgnitor, просто переключив обработчик сеанса по умолчанию в свой файл php.ini, чтобы использовать 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 для хранения сессий.

0

Redis сессия поддерживается в CodeIgniter версии 3

Редактировать конфигурационный файл

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

Official Documentation Redis Driver

Смежные вопросы