redis - 使用 Redis 进行内存缓存,使用 DynamoDB(或 Cassandra)进行 URL 缩短器

标签 redis nosql

我是一名初级程序员,正在为 URL 缩短器构建 Web 服务,并且正在考虑使用哪种 NoSQL。我只需要存储原始 url 和缩短的 url,因此 Redis 是一个明显的选择,因为它非常快。但是 Redis 受限于内存大小,而其他键值 NoSQL 如 DynamoDB 或 Cassandra 将数据存储在磁盘中。您认为使用 Redis 作为重读请求的缓存并同时使用其他 NoSQL 作为数据库有意义吗?

最佳答案

是的,您可以使用 Redis 进行缓存并使用另一个 NoSql 工具进行持久化。事实上,你应该考虑你的项目的复杂性,比如并发访问者的数量,你能负担得起的硬件等。Redis 还可以将数据存储在磁盘中,所以当你重新启动服务器时,你的缓存数据将保留。然而;它还将所有这些存储在内存中,这是 Redis 如此之快的 secret 。您还应该考虑将数据以二进制而不是 Json 的形式存储在 Redis 中,这将大大减少内存的使用。您可以使用诸如 Protobuf 之类的编码库,这将帮助您节省大量内存。如果您的项目在不久的将来似乎变得更加复杂,您还可以使用 RDMS 作为数据库服务器来满足您 future 的需求,这将为您提供独特的功能。

关于redis - 使用 Redis 进行内存缓存,使用 DynamoDB(或 Cassandra)进行 URL 缩短器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52682451/

相关文章:

.net - Redis:我如何 INCR 和插入?

redis - celery 任务不工作

Redis绑定(bind)多个IP

windows - 除了 MongoDB 等,还有什么好的面向 Windows 桌面的面向文档的数据库吗?

mysql - 为通用对象实现数据库结构

mysql - 如何将关系数据库用作基于文档的数据库?

java - 使用 nosql(比如 mongodb)会提高开发效率吗?

laravel - 为什么我的 Redis Docker 容器为 KEYS * 显示 "(empty array)",而我绝对确定它有缓存数据并且工作正常

c# - Redis C# 无法左推?

amazon-web-services - DynamoDB Friends 设计