【问题标题】:Difference between Cache and Redis facade in laravel?laravel中Cache和Redis门面的区别?
【发布时间】:2020-05-10 22:40:45
【问题描述】:

我想实现缓存系统,但我发现他们使用缓存门面的教程,但是当我打开 Redis 文档时,他们使用 Redis 门面,有区别还是相同?

【问题讨论】:

标签: laravel caching redis


【解决方案1】:

Cache 外观允许您访问缓存,因此您可以添加/获取/忘记缓存项。如果您使用 redis 作为缓存驱动程序,这将使用您的 redis 实例作为缓存存储。

Redis 门面允许您访问一个 redis 连接,而不是缓存,尽管这些实际上可能是同一个 redis 实例,具体取决于您的配置。这让您可以访问 redis 的 pub/sub 功能并使用 redis 命令与 redis 实例进行交互https://redis.io/commands

为了更好地了解外观可以做什么,您可以查看它们解析为的类。 Cache 门面解析为Illuminate\Contracts\Cache\Repository,Redis 门面解析为Illuminate\Redis\Connections\Connection

更多关于外墙解析为哪些类的信息,请访问https://laravel.com/docs/6.x/facades#facade-class-reference

【讨论】:

  • 请注意 Cache 和 Redis 门面存储数据的方式不同,即使两者都使用相同的 redis 实例,也不能一起使用它们。我发现使用 Cache::set('a','b');实际上将数据存储为键:“laravel:a” 值:“s:8:\"b\";" , 而 Redis::set('a','b');将它们存储为键: 'a' value 'b' 。使用其中之一,不要同时使用。
猜你喜欢
  • 1970-01-01
  • 2020-06-24
  • 2021-04-07
  • 2021-09-09
  • 2014-03-22
  • 2010-11-09
  • 1970-01-01
  • 2011-11-26
  • 1970-01-01
相关资源
最近更新 更多