laravel的redis用法
laravel 是一个盛行的 php 开发框架,它荣膺《the 2020 laravel developers survey》最受接待的 php 框架头衔。其中,laravel 的 redis 功效被普遍使用,可以资助开发者实现高效的缓存和行列处置惩罚。
Redis 是一个开源的内存数据存储系统,它是一个类似于键值对的 NoSQL 数据库。Redis 的特点在于它能够支持多种数据结构,如字符串、列表、哈希、荟萃、有序荟萃等,同时它还具有高性能、高可用性、可扩展性和易于使用等优点,因此在开发中获得了普遍应用。接下来,我们将详细先容 Laravel 的 Redis 用法。
Redis 的设置
在 Laravel 中使用 Redis 必需要先举行设置。翻开 .env 文件,找到以下设置项:
CACHE_DRIVER=file SESSION_DRIVER=file REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379
登录后复制
其中,CACHE_DRIVER 体现缓存驱动,默认值是 file,这里我们需要修改为 Redis,即:
CACHE_DRIVER=redis
登录后复制
SESSION_DRIVER 同理。REDIS_HOST 体现 Redis 效劳的地点,默以为本机的 127.0.0.1,REDIS_PASSWORD 体现 Redis 的密码,若是没有需要置为 null。REDIS_PORT 体现 Redis 效劳监听的端口,默以为 6379。
为了测试用法,在这里我们使用的 Redis 是在本机装置的,没有设置密码。若是您使用的是远程 Redis,需要修改 REDIS_HOST 和 REDIS_PORT,同时也要设置 REDIS_PASSWORD。
使用 Redis 举行缓存
在 Laravel 中使用 Redis 举行缓存很是简朴。我们只需要使用 Cache 类来会见缓存,然后将其驱动设置为 Redis,这样即可使用 Redis 举行缓存。
缓存一个值
使用 Redis 举行缓存的方法许多,这里我们首先先容缓存一个值。
use IlluminateSupportFacadesCache; Cache::store('redis')->put('key', 'value', $seconds);
登录后复制
上述代码通过 Cache::store(‘redis’) 会见了 Redis 缓存,接着使用 put 要领缓存了一个 key-value 对。其中,$seconds 体现缓存的有用期,单位为秒。当 $seconds 的值为 null 时,缓存将不过期。
获取一个值
缓存一个值的作用是在后续能够直接获取到该值。我们可以使用 Laravel 的 Cache 类来获取该值:
use IlluminateSupportFacadesCache; $value = Cache::store('redis')->get('key');
登录后复制
上述代码通过 Cache::store(‘redis’) 会见了 Redis 缓存,get 要领获取了 key 对应的 value 值。
删除一个值
当我们需要删除某个缓存时,可以使用如下代码:
use IlluminateSupportFacadesCache; Cache::store('redis')->forget('key');
登录后复制
上述代码通过 Cache::store(‘redis’) 会见了 Redis 缓存,forget 要领删除了对应的缓存。
判断一个缓存是否保存
判断缓存是否保存,我们可以使用如下代码:
use IlluminateSupportFacadesCache; if (Cache::store('redis')->has('key')) { // }
登录后复制
上述代码通过 Cache::store(‘redis’) 会见了 Redis 缓存,has 要领判断了 key 对应的 value 值是否保存。
使用 Redis 举行行列处置惩罚
在 Laravel 中使用 Redis 举行行列处置惩罚,需要先引入行列效劳提供者。翻开 config/app.php 文件,找到 providers 数组,添加如下代码:
'providers' => [ // ... IlluminateQueueQueueServiceProvider::class, IlluminateRedisRedisServiceProvider::class, // ... ],
登录后复制
接着,我们需要设置行列毗连。翻开 config/queue.php 文件,修改如下设置项:
'connections' => [ 'redis' => [ 'driver' => 'redis', 'connection' => 'default', 'queue' => 'default', 'retry_after' => 90, 'block_for' => null, ], ],
登录后复制
其中,driver 体现使用 Redis 驱动;connection 体现使用的缓存毗连;queue 体现使用的行列名称;retry_after 体现爆发失败时的重试时间,单位为秒;block_for 体现获取使命时的壅闭时间,单位为秒。
推送使命到行列
接下来,我们可以使用如下代码将使命推到行列中:
use IlluminateSupportFacadesQueue; Queue::push(new SendEmailJob($user));
登录后复制
上述代码使用 Queue::push 要领推送了一个 SendEmailJob 到默认行列中。其中,SendEmailJob 是一个自界说的使命类,可以实现更重大的逻辑。
执行行列使命
推送使命到行列后,我们需要使用以下下令执行使命:
php artisan queue:work
登录后复制
上述下令将启动一个历程来执行行列使命。若是您的效劳器有多个 CPU 焦点,可以通过增添 –daemon 选项来启动多个历程来提高使命处置惩罚速率。
总结
Laravel 的 Redis 功效是很是强盛的,通过与 Redis 的配合可以实现优异的缓存和行列处置惩罚。在处置惩罚高并发和重大营业时,使用 Redis 缓存和行列可以显著提高系统的性能和稳固性。本文简朴先容了 Laravel 的 Redis 用法,希望对您的开发事情有所资助。
以上就是laravel的redis用法的详细内容,更多请关注本网内其它相关文章!