Need advice about which tool to choose?Ask the StackShare community!
Amazon S3 vs Redis: What are the differences?
Introduction
Amazon S3 and Redis are both widely used technologies for different purposes. Amazon S3 is primarily a cloud-based storage service, while Redis is an in-memory data structure store. Here are the key differences between the two:
Data Storage: One of the primary differences between Amazon S3 and Redis is the way they store data. Amazon S3 is designed for long-term storage of large amounts of data, making it suitable for static file storage and backups. On the other hand, Redis is an in-memory data store, which means it primarily stores data in RAM, allowing for fast and efficient access.
Data Retrieval: When it comes to retrieving data, Redis has an advantage over Amazon S3. Redis stores data in RAM, which enables extremely low-latency access to the data. On the other hand, Amazon S3 requires retrieving data from disk, which can introduce some latency, especially when dealing with large amounts of data.
Data Structure Support: Redis offers a wide variety of data structures that can be stored and manipulated, such as strings, lists, sets, and sorted sets. This makes it suitable for building complex data models and performing operations directly on the data. Amazon S3, on the other hand, primarily focuses on storing and retrieving files, so it does not provide native support for data manipulation.
Scalability: Both Amazon S3 and Redis are designed to be highly scalable, but they achieve scalability in different ways. Amazon S3 is a distributed storage system that automatically handles the storage and replication of data across multiple servers. Redis, on the other hand, can be scaled horizontally by adding multiple instances and using techniques like sharding to distribute the data across those instances.
Ease of Use: When it comes to ease of use, Amazon S3 has a higher level of abstraction, making it generally easier to use for storage purposes. It provides a simple interface for uploading and downloading files, and also integrates well with other AWS services. Redis, on the other hand, requires more knowledge and expertise to set up and use effectively, especially when it comes to managing data models and performing complex operations.
Data Persistence: Redis provides options for data persistence, allowing you to save the data to disk and recover it in case of server reboots or failures. Amazon S3 also provides durability and high availability for data, but it does not offer the same level of persistence as Redis. In Amazon S3, the data is stored redundantly across multiple servers, ensuring durability, but there is no built-in mechanism for persistent storage within a single instance.
In summary, Amazon S3 is a cloud storage service designed for long-term storage of large volumes of data, while Redis is an in-memory data structure store optimized for fast data access and manipulation. They differ in terms of data storage, retrieval, supported data structures, scalability, ease of use, and data persistence.
Hello! I have a mobile app with nearly 100k MAU, and I want to add a cloud file storage service to my app.
My app will allow users to store their image, video, and audio files and retrieve them to their device when necessary.
I have already decided to use PHP & Laravel as my backend, and I use Contabo VPS. Now, I need an object storage service for my app, and my options are:
Amazon S3 : It sounds to me like the best option but the most expensive. Closest to my users (MENA Region) for other services, I will have to go to Europe. Not sure how important this is?
DigitalOcean Spaces : Seems like my best option for price/service, but I am still not sure
Wasabi: the best price (6 USD/MONTH/TB) and free bandwidth, but I am not sure if it fits my needs as I want to allow my users to preview audio and video files. They don't recommend their service for streaming videos.
Backblaze B2 Cloud Storage: Good price but not sure about them.
There is also the self-hosted s3 compatible option, but I am not sure about that.
Any thoughts will be helpful. Also, if you think I should post in a different sub, please tell me.
If pricing is the issue i'd suggest you use digital ocean, but if its not use amazon was digital oceans API is s3 compatible
Hello Mohammad, I am using : Cloudways >> AWS >> Bahrain for last 2 years. This is best I consider out of my 10 year research on Laravel hosting.
Minio is a free and open source object storage system. It can be self-hosted and is S3 compatible. During the early stage it would save cost and allow us to move to a different object storage when we scale up. It is also fast and easy to set up. This is very useful during development since it can be run on localhost.
We offer our customer HIPAA compliant storage. After analyzing the market, we decided to go with Google Storage. The Nodejs API is ok, still not ES6 and can be very confusing to use. For each new customer, we created a different bucket so they can have individual data and not have to worry about data loss. After 1000+ customers we started seeing many problems with the creation of new buckets, with saving or retrieving a new file. Many false positive: the Promise returned ok, but in reality, it failed.
That's why we switched to S3 that just works.
Pros of Amazon S3
- Reliable590
- Scalable492
- Cheap456
- Simple & easy329
- Many sdks83
- Logical30
- Easy Setup13
- REST API11
- 1000+ POPs11
- Secure6
- Plug and play4
- Easy4
- Web UI for uploading files3
- Faster on response2
- Flexible2
- GDPR ready2
- Easy to use1
- Plug-gable1
- Easy integration with CloudFront1
Pros of Redis
- Performance886
- Super fast542
- Ease of use513
- In-memory cache444
- Advanced key-value cache324
- Open source194
- Easy to deploy182
- Stable164
- Free155
- Fast121
- High-Performance42
- High Availability40
- Data Structures35
- Very Scalable32
- Replication24
- Great community22
- Pub/Sub22
- "NoSQL" key-value data store19
- Hashes16
- Sets13
- Sorted Sets11
- NoSQL10
- Lists10
- Async replication9
- BSD licensed9
- Bitmaps8
- Integrates super easy with Sidekiq for Rails background8
- Keys with a limited time-to-live7
- Open Source7
- Lua scripting6
- Strings6
- Awesomeness for Free5
- Hyperloglogs5
- Transactions4
- Outstanding performance4
- Runs server side LUA4
- LRU eviction of keys4
- Feature Rich4
- Written in ANSI C4
- Networked4
- Data structure server3
- Performance & ease of use3
- Dont save data if no subscribers are found2
- Automatic failover2
- Easy to use2
- Temporarily kept on disk2
- Scalable2
- Existing Laravel Integration2
- Channels concept2
- Object [key/value] size each 500 MB2
- Simple2
Sign up to add or upvote prosMake informed product decisions
Cons of Amazon S3
- Permissions take some time to get right7
- Requires a credit card6
- Takes time/work to organize buckets & folders properly6
- Complex to set up3
Cons of Redis
- Cannot query objects directly15
- No secondary indexes for non-numeric data types3
- No WAL1