Eu acredito que muitas pessoas usaram bancos de dados, Memcache e sessões de armazenamento de arquivos, então pode o Rdis armazenar sessões? A resposta é sim.
Ambiente específico:
um servidor apache + php (yum instala remi source e configura httpd-2.2.15 php-5.4.45)
um servidor redis (yum instala remi source e configura redis-3.2.6) para
garantir que o servidor apache pode ser acessou a porta 6379 do servidor redis
Passos específicos:
1. Instale a extensão redis no servidor apache + php
Clique (aqui) para recolher ou abrir
- yum install php-pecl-redis
2. Teste se a extensão php foi instalada com sucesso
mais index.php
Clique (aqui) para recolher ou abrir
- php
- phpinfo ()
- ?>
O acesso do navegador é o seguinte:
Conforme mostrado na figura acima, a instalação foi bem-sucedida.O número da versão aqui é diferente do número da versão do próprio redis, portanto, você pode ignorá-lo.
3. Em seguida, modifique o arquivo php.conf Muitas pessoas podem se perguntar se não é a modificação do arquivo php.ini? Eu falarei sobre isso mais tarde.
Clique (aqui) para recolher ou abrir
- mais /etc/httpd/conf.d/php.conf
Serão as duas linhas a seguir:
Clique (aqui) para recolher ou abrir
- php_value session.save_handler "arquivos"
- php_value session.save_path "/ var / lib / php / session"
Alterado da seguinte forma
Clique (aqui) para recolher ou abrir
- php_value session.save_handler "redis"
- php_value session.save_path "tcp: //192.168.9.131: 6379"
Aqui estão alguns artigos que adicionam tcp e outros não. Eu testei que pode ser armazenado no redis com ou sem sessão.
O que eu pessoalmente entendo é: adicionar tcp significa protocolo tcp, se não adicionar significa protocolo http. Se não estiver certo, não borrife ~~
Reinicie o serviço httpd depois de salvar e sair
4. Escreva uma página de teste test.php com o seguinte conteúdo:
Clique (aqui) para recolher ou abrir
- header ("Content-type: text / html; charset = utf-8");
- session_start (); // Isso é muito importante
- $ _SESSION ['test_session'] = @array ('name' => 'fanqie', 'ccc' => 'olá redis');
- $ redis = novo redis ();
- $ redis-> connect ('192.168.9.131', 6379);
- echo 'sessionid >>>>>>> PHPREDIS_SESSION:'. identificação de sessão();
- echo '
'; - echo '
'; - // redis usa session_id como a chave e é armazenado na forma de string
- echo'Get com redis através do php >>>>>>>> '. $ redis-> get (' PHPREDIS_SESSION: '. session_id ());
- echo '
'; - echo '
'; - echo'Faça o php com a sessão >>>>>>>>
'; - eco '
';
- var_dump($_SESSION['test_session']);
- echo '';
5、测试,通过浏览器访问
在redis里面查看是否有这个session
redis中的session值和浏览器访问的值一样,说明成功。
这里我说一下为什么我直接修改的php.conf文件,而不是php.ini文件
如果你两个都配置了,它们的优先级比较高的是php.conf文件。所以说如果你想配置php.ini文件,你还需要注释掉php.conf中默认存本地的方式。这样更复杂繁琐。相信大家会选择上面比较简单的方式。
更多前沿PHP技术请搜索千锋PHP,做真实的自己,用良心作教育