configuração redis de sessão php

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

  1. 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

  1. php
  2. phpinfo ()
  3. ?>

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

  1. mais /etc/httpd/conf.d/php.conf

Serão as duas linhas a seguir:

Clique (aqui) para recolher ou abrir

  1. php_value session.save_handler "arquivos"
  2. php_value session.save_path "/ var / lib / php / session"

Alterado da seguinte forma

Clique (aqui) para recolher ou abrir

  1. php_value session.save_handler "redis"
  2. 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

  1. header ("Content-type: text / html; charset = utf-8");
  2. session_start (); // Isso é muito importante
  3. $ _SESSION ['test_session'] = @array ('name' => 'fanqie', 'ccc' => 'olá redis');
  4. $ redis = novo redis ();
  5. $ redis-> connect ('192.168.9.131', 6379);
  6. echo 'sessionid >>>>>>> PHPREDIS_SESSION:'. identificação de sessão();
  7. echo '
    ';
  8. echo '
    ';
  9. // redis usa session_id como a chave e é armazenado na forma de string
  10. echo'Get com redis através do php >>>>>>>> '. $ redis-> get (' PHPREDIS_SESSION: '. session_id ());
  11. echo '
    ';
  12. echo '
    ';
  13. echo'Faça o php com a sessão >>>>>>>>
    ';
  14. eco '
    ';
    			
  15. var_dump($_SESSION['test_session']);
  16. echo '';

5、测试,通过浏览器访问

在redis里面查看是否有这个session

redis中的session值和浏览器访问的值一样,说明成功。
这里我说一下为什么我直接修改的php.conf文件,而不是php.ini文件
如果你两个都配置了,它们的优先级比较高的是php.conf文件。所以说如果你想配置php.ini文件,你还需要注释掉php.conf中默认存本地的方式。这样更复杂繁琐。相信大家会选择上面比较简单的方式。

更多前沿PHP技术请搜索千锋PHP,做真实的自己,用良心作教育

Acho que você gosta

Origin blog.csdn.net/chengshaolei2012/article/details/72638762
Recomendado
Clasificación