If you are finding good data structure or fast performance of database, you can take a look with Redis
Redis is a fast, open source, in-memory key-value data structure store. Redis comes with a set of versatile in-memory data structures which enable you to easily create a variety of custom applications. Leading use-cases for Redis include caching, session management, pub/sub, and leaderboards. It is the most popular key-value store today. It is BSD licensed, written in optimized C code, and supports multiple development languages. Redis is an acronym for REmote DIctionary Server.
Due to its speed and ease-of-use, Redis is a popular choice for Web, Mobile, Gaming, Ad-Tech, and IoT applications that require best-in-class performance. AWS provides Redis support through a fully managed and optimized database service called Amazon ElastiCache for Redis, and also allows customers to run self-managed Redis on AWS EC2.
Due to its speed and ease-of-use, Redis is a popular choice for Web, Mobile, Gaming, Ad-Tech, and IoT applications that require best-in-class performance. AWS provides Redis support through a fully managed and optimized database service called Amazon ElastiCache for Redis, and also allows customers to run self-managed Redis on AWS EC2.
Blazing fast performance
All Redis data resides in its server’s main memory, in contrast to most database management systems that store data on disk or on SSDs. By eliminating the need to access disks, in-memory databases such as Redis avoid seek time delays and can access data with simpler algorithms that use fewer CPU instructions. Typical operations require less than a millisecond to execute.
In-memory data structures
Redis allows users to store keys that map to various data types. The fundamental data type is a String, which can be text or binary data with a size of up to 512MB. Redis also support Lists of Strings in the order they were added; Sets of unordered Strings; Sorted Sets ordered by a score; Hashes which store a list of fields and values; and HyperLogLogs to count the unique items in a data set. Nearly any type of data can be stored in memory using Redis.
Versatility and ease-of-use
Redis comes with a number of tools that make development and operations faster and easier, including Pub/Sub, to publish messages to channels, which are delivered to subscribers – great for chat and messaging systems; TTL keys can have a determined Time To Live, after which they delete themselves – useful to avoid filling the database with unneeded data; Atomic counters the ensure that race conditions do not create inconsistent results; and Lua, a powerful but lightweight scripting language.
Replication and Persistence
Redis employs a master-slave architecture and supports asynchronous replication where data can be replicated to multiple slave servers. This can provide both improved read performance (as requests can be split among the servers) and recovery when the primary server experiences an outage.
To provide durability, Redis supports both point-in-time Snapshots (copying the Redis data set to disk) and creating an Append Only File (AOF) to store each data change to disk as it is written. Either method allows rapid restoration of Redis data in the event of an outage.
Support for your favorite development language
Over a hundred open source clients are available for Redis developers. Supported languages include Java, Python, PHP, C, C++, C#, JavaScript, Node.js, Ruby, R, Go and many others.
On next tutorial. I'll help you how to use Redis
If you have any questions or feedback, leave your comment we can discuss about it!
Zidane