您现在的位置是: 网站首页> 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)