温馨提示×

ubuntu下thinkphp怎样用redis

小樊
35
2026-09-28 17:55:13
栏目: 云计算

在 Ubuntu 下,让 ThinkPHP(以 ThinkPHP 5 / 6 为主,也适用于 8)使用 Redis,一般按下面步骤来即可。


一、Ubuntu 安装 Redis

1. 安装 Redis 服务

sudo apt update
sudo apt install redis-server

2. 启动并设置为开机自启

sudo systemctl start redis
sudo systemctl enable redis

3. 测试 Redis 是否可用

redis-cli ping
# 返回 PONG 表示正常

二、安装 PHP 的 Redis 扩展

1. 安装 php-redis 扩展

先确认你的 PHP 版本(如 7.4 / 8.1):

php -v

安装对应扩展:

sudo apt install php-redis
# 或指定版本,例如:
sudo apt install php8.1-redis

2. 重启 PHP / Web 服务

# 如果是 Nginx + PHP-FPM
sudo systemctl restart php8.1-fpm
sudo systemctl restart nginx

# 如果是 Apache
sudo systemctl restart apache2

3. 验证扩展

php -m | grep redis

看到 redis 即成功。


三、ThinkPHP 配置 Redis

ThinkPHP 6 / 8(推荐方式)

1. 修改缓存配置

编辑:

config/cache.php

示例:

return [
    'default' => 'redis',

    'stores' => [
        'redis' => [
            'type'       => 'redis',
            'host'       => '127.0.0.1',
            'port'       => 6379,
            'password'   => '',
            'select'     => 0,
            'timeout'    => 0,
            'persistent' => false,
        ],
    ],
];

ThinkPHP 5

编辑:

application/config.php
'cache' => [
    'type'   => 'redis',
    'host'   => '127.0.0.1',
    'port'   => 6379,
    'password' => '',
    'select' => 0,
    'expire' => 0,
    'prefix' => '',
],

四、ThinkPHP 中使用 Redis

1. 作为缓存使用

use think\facade\Cache;

// 写入
Cache::set('name', 'thinkphp', 3600);

// 读取
echo Cache::get('name');

// 删除
Cache::delete('name');

2. 直接操作 Redis(原生方式)

use think\facade\Cache;

$redis = Cache::store('redis')->handler();

$redis->set('test', 'hello');
echo $redis->get('test');

3. 用作 Session 存储(可选)

// config/session.php
return [
    'type'   => 'redis',
    'host'   => '127.0.0.1',
    'port'   => 6379,
    'password' => '',
    'select' => 1,
];

五、常见问题

1. Redis 连不上

  • 检查 redis-server 是否运行
  • 检查防火墙 / 云服务器安全组
  • 确认 bind 127.0.0.1 是否限制

2. 提示 class not found

  • PHP Redis 扩展未安装
  • Web 和 CLI 使用的 PHP 版本不同

3. 密码问题

# redis.conf
requirepass yourpassword

ThinkPHP 对应填写 password


如果你用的是 ThinkPHP 5 / 6 / 8 的具体版本,或者 用的是 Docker / LNMP,我可以给你更精确的配置示例。

0 踩