广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >Laravel操作redis和缓存操作详解
  • 647
分享到

Laravel操作redis和缓存操作详解

Laravel操作redisLaravel 缓存操作Laravel redis 2023-02-13 12:02:34 647人浏览 泡泡鱼
摘要

目录一:操作Redis1:redis拓展安装2:配置redis3:操作redis二:缓存操作1:缓存配置2:缓存操作一:操作redis 1:redis拓展安装 composer re

一:操作redis

1:redis拓展安装

composer require predis/predis

或者你也可以通过 PECL 安装 PHPRedis php 扩展,安装方法比较复杂,个人不推荐

2:配置redis

在config/database.php文件中配置redis

(1):单个redis配置

'redis' => [

    'client' => env('REDIS_CLIENT', 'predis'),//别名,如果你安装的是PhpRedis,将client值改为phpredis

    'default' => [
        'host' => env('REDIS_HOST', '127.0.0.1'),//redis服务器主机
        'passWord' => env('REDIS_PASSWORD', null),//redis服务器密码
        'port' => env('REDIS_PORT', 6379),//redis服务器端口
        'database' => env('REDIS_DB', 0),
    ],

    'cache' => [
        'host' => env('REDIS_HOST', '127.0.0.1'),//redis服务器主机
        'password' => env('REDIS_PASSWORD', null),//redis服务器密码
        'port' => env('REDIS_PORT', 6379),//redis服务器端口
        'database' => env('REDIS_CACHE_DB', 1),
    ],

],

(2):redis集群配置

'redis' => [

    'client' => env('REDIS_CLIENT', 'predis'),

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

],

3:操作redis

(1):设置redis

Redis::set('val1','asdasd');

(2):获取redis

Redis::get('key')

(3):删除redis

Redis::del('key');

二:缓存操作

1:缓存配置

laravel框架的缓存配置在config/cache.php文件中,配置参数有:

(1):配置cache的驱动

'default' => env('CACHE_DRIVER', 'file')

Laravel 自带了几个不错且可开箱即用的驱动

• file - 将 Session 保存在 framework/cache/data 中。

• cookie - Session 保存在安全加密的 Cookie 中。

• database - Session 保存在关系型数据库中。

• memcached / redis - Sessions 保存在其中一个快速且基于缓存的存储系统中。

• array - Sessions 保存在 PHP 数组中,不会被持久化。

(2):根据你所选的驱动配置

'stores' => [

        'apc' => [
            'driver' => 'apc',
        ],

        'array' => [
            'driver' => 'array',
        ],

        'database' => [
            'driver' => 'database',
            'table' => 'cache',
            'connection' => null,
        ],

        'file' => [
            'driver' => 'file',
            'path' => storage_path('framework/cache/data'),
        ],

        'memcached' => [
            'driver' => 'memcached',
            'persistent_id' => env('MEMCACHED_PERSISTENT_ID'),
            'sasl' => [
                env('MEMCACHED_USERNAME'),
                env('MEMCACHED_PASSWORD'),
            ],
            'options' => [
                // Memcached::OPT_CONNECT_TIMEOUT => 2000,
            ],
            'servers' => [
                [
                    'host' => env('MEMCACHED_HOST', '127.0.0.1'),
                    'port' => env('MEMCACHED_PORT', 11211),
                    'weight' => 100,
                ],
            ],
        ],

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

        'dynamodb' => [
            'driver' => 'dynamodb',
            'key' => env('AWS_ACCESS_KEY_ID'),
            'secret' => env('AWS_SECRET_ACCESS_KEY'),
            'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
            'table' => env('DYNAMODB_CACHE_TABLE', 'cache'),
            'endpoint' => env('DYNAMODB_ENDPOINT'),
        ],

    ],

• 如果你选择了的database作为驱动的时,就需要修改stores内的database配置

'database' => [
    'driver' => 'database',
    'table' => 'cache',//配置的缓存表名
    'connection' => null,//连接名,这个是在config/database.php文件配置的,不进行配置使用默认连接的数据库
],

你选择了database作为缓存驱动的话,在目录命令行执行

php artisan cache:table
php artisan migrate

这时候会在数据库生成一个cache表用于存储缓存数据

• 如果你选择了file作为驱动时,就需要修改stores内的file配置

'file' => [
    'driver' => 'file',
    'path' => storage_path('framework/cache/data'),//这里配置的是缓存数据保存地址
],

• 如果你选择了redis作为驱动时,就需要修改stores内的redis配置

'redis' => [
    'driver' => 'redis',
    'connection' => 'default',//redis的连接名,对应config/database.php文件的redis配置,如果不进行配置使用默认的redis连接配置
],

2:缓存操作

(1):设置缓存

Cache::put('key', 'value', $minutes);

//将不存在于缓存中的数据放入缓存中,如果存放成功返回 true ,否则返回 false
Cache::add('key', 'value', $minutes);

//数据永久存入缓存
Cache::forever('key', 'value');

//获取users缓存,如果不存在,执行第三个参数,将返回值存入缓存
$value = Cache::remember('users', $minutes, function () {
    return DB::table('users')->get();
});

//获取users缓存,如果不存在,执行第三个参数,将返回值存入缓存并永久储存
$value = Cache::rememberForever('users', function() {
    return DB::table('users')->get();
});

(2):获取缓存

$value = Cache::get('key')

//传递第二个参数,用来指定如果查找的数据不存在时,你希望返回的默认值
$value = Cache::get('key', 'default');

//第二个参数传递 Closure 作为默认值。如果指定的数据不存在于缓存中,将返回 Closure 的结果
$value = Cache::get('key', function () {
    return DB::table(...)->get();
});

//判断缓存是否存在,如果值为 null 或 不存在返回false
Cache::has('key')

(3):删除缓存

//从缓存中获取到数据之后再删除它,如果缓存中不存在该数据, 则返回 null
$value = Cache::pull('key');
//删除缓存
Cache::forget('key');
//清空缓存
Cache::flush();

(4):缓存递增递减

increment 和 decrement 方法可以用来调整高速缓存中整数项的值。这两个方法都可以传入第二个可选参数,用来指示要递增或递减值的数量

注意:使用increment和decrement前提对应的缓存之前必须有缓存数据,不然返回NULL

Cache::increment('key');
Cache::increment('key', 2);
Cache::decrement('key');
Cache::decrement('key', 2);

(5):使用多种缓存方式

如果你想要使用多种缓存,你可以使用下面这种形式操作缓存,其他方法同理

$value = Cache::store('file')->get('foo');//获取
Cache::store('redis')->put('bar', 'baz', 10);//设置

以上就是Laravel操作redis和缓存操作详解的详细内容,更多关于Laravel操作redis 缓存操作的资料请关注编程网其它相关文章!

--结束END--

本文标题: Laravel操作redis和缓存操作详解

本文链接: https://www.lsjlt.com/news/195801.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Laravel操作redis和缓存操作详解
    目录一:操作redis1:redis拓展安装2:配置redis3:操作redis二:缓存操作1:缓存配置2:缓存操作一:操作redis 1:redis拓展安装 composer re...
    99+
    2023-02-13
    Laravel操作redis Laravel 缓存操作 Laravel redis
  • laravel操作redis和缓存操作
    一:操作redis 1:redis拓展安装 composer require predis/predis 或者你也可以通过 PECL 安装 PhpRedis PHP 扩展,安装方法比较复杂,个人不推荐 2:配置redis 在con...
    99+
    2023-09-04
    laravel php redis 缓存 Powered by 金山文档
  • laravel框架中缓存的操作示例
    这篇文章给大家分享的是有关laravel框架中缓存的操作示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。laravel为不同的缓存系统提供了统一的API。缓存配置位于config/cache.php。Larav...
    99+
    2023-06-14
  • redis缓存的简单操作(get、put)
    本文介绍简单的redis缓存操作,包括引入jedisjar包、配置redis、RedisDao需要的一些工具、向redis中放数据(put)、从redis中取数据(get)、访问redis时的逻辑 一、引入...
    99+
    2022-06-04
    缓存 操作 简单
  • Laravel操作session和cookie的教程详解
    目录一:操作session1:session配置2:设置session3:获取session4:删除session5:重新生成 Session ID二:操作cookie1:设置coo...
    99+
    2023-02-09
    Laravel操作session cookie Laravel session cookie Laravel session Laravel cookie
  • laravel框架的缓存操作代码实例
    laravel为不同的缓存系统提供了统一的API。缓存配置位于config/cache.php。Laravel目前支持主流的缓存后端有Memcached和Redis等。 主要方法: ...
    99+
    2022-11-11
  • PHP操作Redis详解案例
    $redis = new Redis();connect, open 链接redis服务参数host: string,服务地址port: int,端口号timeout: float,链接时长 (可选, 默认...
    99+
    2022-10-18
  • Python如何操作Redis缓存数据库
    本篇内容主要讲解“Python如何操作Redis缓存数据库”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python如何操作Redis缓存数据库”吧!今天我们来学习如何使用Python操作Red...
    99+
    2023-06-02
  • springboot使用shiro-整合redis作为缓存的操作
    说在前面 本来的整合过程是顺着博客的顺序来的,越往下,集成的越多,由于之前是使用ehcache缓存,现在改为redis,限制登录人数 以及 限制登录次数等 都需要改动,本篇为了简单,...
    99+
    2022-11-12
  • 如何在java项目中操作Redis缓存
    这篇文章给大家介绍如何在java项目中操作Redis缓存,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.导入必须的Jar包使用Java操作Redis需要两个必须的Jar包:jedis-2.5.1.jar 和 ...
    99+
    2023-05-31
    java redis
  • redis事务常用操作详解
    事务 MULTI 、 EXEC 、 DISCARD 和 WATCH 是 Redis 事务相关的命令。事务可以一次执行多个命令, 并且带有以下两个重要的保证: 事务是一个单独的隔离操作:事务中的所有命令都会...
    99+
    2022-10-18
  • laravel操作session和cookie
    一:操作session 1:session配置 Session 的配置文件存储在config/session.php中,配置参数有: (1):配置session驱动 'driver' => env('SESSION_DRIVER',...
    99+
    2023-09-27
    laravel php Powered by 金山文档
  • SpringBoot中的Redis 缓存问题及操作方法
    目录1、五大基本数据类型和操作1.1 字符串-string1.2 列表-list1.3 集合-set1.4 键值对-hash1.5 有序集合-zset2、Redis整合2.1 spr...
    99+
    2022-11-13
    SpringBoot Redis 缓存 SpringBoot缓存
  • Spring Boot中怎么利用Redis 实现缓存操作
    这期内容当中小编将会给大家带来有关Spring Boot中怎么利用Redis 实现缓存操作,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、缓存的应用场景二、更新缓存的策略三、运行 springboot-...
    99+
    2023-06-17
  • SpringBoot中操作使用Redis实现详解
    目录1.依赖2.依赖关系3.配置4.RedisTemplate5.基础操作6.事务1.依赖 maven依赖如下,需要说明的是,spring-boot-starter-data-red...
    99+
    2023-05-16
    Spring Boot Redis Spring Boot 整合 Redis
  • Redis教程(七):Key操作命令详解
    一、概述: 在该系列的前几篇博客中,主要讲述的是与Redis数据类型相关的命令,如String、List、Set、Hashes和Sorted-Set。这些命令都具有一个共同点,即所有的操作都是针...
    99+
    2022-06-04
    详解 命令 操作
  • java秒杀之redis限流操作详解
    最近写到了一个秒杀的功能模块,为了保证高并发情况下不会宕机,要从多方面去考虑,当前的限流操作只是其中的一个方面,具体操作如下。 导入所需依赖 <properties>...
    99+
    2022-11-12
  • Python操作Redis和Memcac
    MemcachedMemcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的...
    99+
    2023-01-31
    操作 Python Memcac
  • Java操作Redis详细介绍
    1. 简介Redis 是一个开源(BSD许可)的,内存中的key-value存储系统,它可以用作数据库、缓存和消息中间件。2. 对key的操作首先要建立连接Jedis jedis = new Jedis("127.0.0.1", 6379)...
    99+
    2023-05-30
    java redis使用
  • Node.js基础入门之缓存区与文件操作详解
    目录缓存区1. 什么是缓存区?2. 创建指定长度的缓存区3. 通过数组创建缓存区4. 通过字符串创建缓存区5. 读写缓存区6. 复制缓存区文件操作1. 异步直接读取2. 同步直接读取...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作