我去调查了一下Redis(レディス)
如果你使用 Laravel Sail 进行安装的话,Laravel8默认会装在 Docker 容器中。
在工作场所,前辈们会互相讨论”是使用 Redis 进行存储还是使用数据库进行存储”之类的话题,由于不太清楚其中的区别,我决定进行一番调查研究。
如果有任何错误或者我没有完全理解清楚的地方,请指出来,我将不胜感激。
Redis – Redis
在Laravel 8的日本語翻訳页面(非官方)上,以下内容被记录如下。
https://readouble.com/laravel/8.x/ja/redis.html
Redis是一个开源的高级键/值存储区域。它可以包括字符串,哈希,列表,集合和有序集合等数据结构,因此有时被称为数据结构服务器。
这家商店以关键价值店的类型经营,对吗?
Redis官方网站上如下所述。(很抱歉,请使用Google翻译)
Redis是一个开源的内存数据结构存储,可用作数据库、缓存和消息代理。Redis提供了多种数据结构,包括字符串、哈希、列表、有序集合(包括范围查询)、位图、HyperLogLog、地理空间索引和流。Redis还具有内置的复制、Lua脚本、LRU驱逐、事务和多个级别的持久性,通过Redis Sentinel和Redis Cluster提供自动分区以实现高可用性。
嗯,完全听不懂。
我知道信息是保存在内存里的。
那么,不能保存很多吗?
特征
通过参考各种文章,我了解到以下特点。
①数据类型
-
- string
-
- hash
-
- list
-
- set
- sorted set
因为它是非关系型数据库(NoSQL),所以可以期望它具备强大且高速的处理能力,尤其适用于大数据。
为什么非关系型数据库能够进行快速处理呢?可能是因为关系型数据库无法同时进行重写操作,处理必须在最后成功后才能完成。举个例子,我之前在Qiita上写过,如果在ATM机转账过程中服务器崩溃,虽然转账处理已经完成,但对方没有收到转账,那就非常麻烦了。为了确保处理一次性完成,所以处理是一块一块地进行的。这意味着即使是微小的处理等待也可能使性能下降,这可能取决于数据的处理方式。
嗯,也就是说在绝对不能容忍数据丢失的场景下不能使用对吧。我懂了。
使用目的
具体的にどういう場面で使うのがいいのだろうと色々な記事を見てみました。
一种现金使用方式
很多时候,RDBMS的缓存用途是很常见的。
与替代RDBMS不同,更像是额外使用的感觉。
第2页的访问次数
如果在一个访问页面的人很多的情况下尝试使用关系型数据库管理系统来获取次数,可能会导致锁定过多,性能就会变得很差。在这种情况下,使用Redis似乎能够充分展现其优势。
③点赞数量
果然,如果个别有影响力的人因为被点赞数过多而导致处理速度延迟的话,那就会非常麻烦呢。
嗯,我明白了。
我大致了解了利用的方式。
请参考此页面。
Redis是什么?
【入门】Redis
以下是对Redis特点的简明总结。