php使用redis做缓存和使用redis保存session

Posted 千年寒冰火

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php使用redis做缓存和使用redis保存session相关的知识,希望对你有一定的参考价值。

php使用redis

一、ubuntu上安装php的redis模块

  1. 我安装的是php7.3,2020年ubuntu1804安装php7.3最新详细教程
  2. 直接使用命令:sudo apt install php-redis
  3. 重启php-fpm: /etc/init.d/php7.3-fpm restart
  4. 使用phpinfo()查看php的配置信息,检查是否启动redis模块

二、安装redis

参考我的redis的安装教程

  1. 2020ubuntu1804server编译安装redis笔记(一)
  2. 2020ubuntu1804server编译安装redis5笔记(二)配置redis

三、php连接redis

  1. 连接和使用redis
redis_host = "localhost";
$redis_port = "6379";
$redis = new Redis();
$redis->connect($redis_host,$redis_port);
echo "成功连接redis";
echo "<br>";
echo "服务器测试:".$redis->ping();
echo "<br>";
$redis->set("test","bruce,common",[\'NX\',\'EX\'=>60*3]);
echo "获取redis值:".$redis->get("test");
$redis->close();
//如果不手动关闭,redis自动会关闭,时间默认值是300s,可在php.ini中更改
  1. redis的使用方法都在$redis的对象可以直接调用
  2. 参考文档

四、php的session使用redis

  1. 修改php.ini
    • 因为使用fpm运行php,所以php.ini的路径/etc/php/7.3/fpm/php.ini
    • vim php.ini修改一下两个值
    session.save_handler = redis //默认是files
    session.save_path = "tcp://localhost:6389"
    // 如果有密码:session.save_path = "tcp://localhost:6389?auth=password",端口也可以自己设置
    
    • 重启fpm ,方法同上
  2. 如果不能修改php.ini那只能程序里面设置
// 设置显示错误气提示
ini_set(\'display_errors\', true);
error_reporting(E_ALL);

// 配置session 存储于redis
ini_set(\'session.save_handler\', \'redis\');
ini_set(\'session.save_path\', \'tcp://127.0.0.1:6379?auth=123456789\');
  1. 查看redis中的session
<?php
$redis_host = "localhost";
$redis_port = "6379";
$redis = new Redis();
$redis->connect($redis_host,$redis_port);
echo "成功连接redis";
echo "<br>";
echo "服务器测试:".$redis->ping();
echo "<br>";
$arList = $redis->keys(\'PHPREDIS_SESSION*\');
print_r($arList);
echo "<br>";
echo "session的key".$arList[0]."<br>session的值".$redis->get($arList[0]);
$redis->close();

以上是关于php使用redis做缓存和使用redis保存session的主要内容,如果未能解决你的问题,请参考以下文章

redis缓存一致性

ThinkPHP5.0中Redis的使用和封装

使用cachemanager做缓存(Session的缓存)

laravel5.5缓存系统

Redis 应用:缓存

php redis做mysql的缓存,怎么异步redis同步到mysql数据库?