您现在的位置是: 网站首页> PHP> Laravel Laravel

Laravel中如何使用Redis

Smile 2020-03-19 23:49:44 PHP Laravel 阅读:3090

简介在使用Laravel搭建网站时,经常会用到 Redis 做数据缓存,减轻服务器数据库的压力,提高网站整体的反应时间以及性能,下面简单介绍在 Laravel 中如何使用Redis

一、通过 Laravel 的缓存系统来简单使用 Redis 作缓存

(1)在使用 Laravel 的 Redis 之前,你需要通过 Composer 安装 predis/predis 扩展包:

composer require predis/predis

(2)修改 .env 配置文件,将 CACHE_DRIVER 的值改为 redis,默认是 file

CACHE_DRIVER=redis

(3)修改配置文件 config/cache.php

'redis' => [
            'driver' => 'redis',
            'connection' => 'default',
        ],

(4)修改配置文件 config/database.php ,一般使用系统默认就可以

'default' => [
            'host' => env('REDIS_HOST', '127.0.0.1'),
            'password' => env('REDIS_PASSWORD', null),
            'port' => env('REDIS_PORT', 6379),
            'database' => env('REDIS_DB', 0),
        ],

(5)在控制器中测试使用是否已成功配置使用

public function index()
{
        if (cache()->has('test_key')){
            $test = cache()->get('test_key');
            dd($test);
        }else{
            cache()->put('test_key','test_value');

        }
        $test = cache()->get('test_key');
        dd($test);//输出test_value
}

(6)最后可以在 redis 查看有没有存储成功

127.0.0.1:6379> get test_key
(nil)
127.0.0.1:6379> keys *
1) "laravel_database_laravel_cache:seo_config"
2) "laravel_database_laravel_cache:web_config"
3) "laravel_database_laravel_cache:test_key"
4) "laravel_database_laravel_cache:url_config"
127.0.0.1:6379>

可以发现 Laravel 并不是以控制器中的 key 直接存储的,第三个就是我在控制器中存储的值

 

二、直接通过 predis 扩展包中封装的方法操作 Redis 进行存储

(1)在使用 Redis 之前引入

use Illuminate\Support\Facades\Redis;

(2)接下来在控制器中测试

public function index()
{
        if(Redis::exists('test_key2')){
            $test2 = Redis::get('test_key2');
            dd($test2);
        }else{
            Redis::set('test_key2','test_value2');
        }
        $test2 = Redis::get('test_key2');
        dd($test2);//输出test_value2
}

(3)在 redis 查看有没有存储成功

127.0.0.1:6379> get test_key2
(nil)
127.0.0.1:6379> keys *
1) "laravel_database_laravel_cache:seo_config"
2) "laravel_database_laravel_cache:web_config"
3) "laravel_database_laravel_cache:url_config"
4) "laravel_database_test_key2"
5) "laravel_database_laravel_cache:test_key"
127.0.0.1:6379>

可以看到第四个就是刚才存储的值

注:可能会遇到以下报错

Predis\Connection\ConnectionException thrown with message "����Ŀ����������ܾ����޷����ӡ� [tcp://127.0.0.1:6379]"

Stacktrace:
#47 Predis\Connection\ConnectionException in F:\phpEnv\www\ldy8.com\vendor\predis\predis\src\Connection\AbstractConnection.php:155
#46 Predis\Connection\AbstractConnection:onConnectionError in F:\phpEnv\www\ldy8.com\vendor\predis\predis\src\Connection\StreamConnection.php:128
#45 Predis\Connection\StreamConnection:createStreamSocket in F:\phpEnv\www\ldy8.com\vendor\predis\predis\src\Connection\StreamConnection.php:178
#44 Predis\Connection\StreamConnection:tcpStreamInitializer in F:\phpEnv\www\ldy8.com\vendor\predis\predis\src\Connection\StreamConnection.php:100
#43 Predis\Connection\StreamConnection:createResource in F:\phpEnv\www\ldy8.com\vendor\predis\predis\src\Connection\AbstractConnection.php:81
这是因为没有开启 Redis 服务器的原因,只要开启就OK了

很赞哦! (0)

文章评论

站点信息