Home  >  Article  >  Database  >  Why is redis performance so high?

Why is redis performance so high?

步履不停
步履不停Original
2019-06-24 13:18:202846browse

Why is redis performance so high?

(1) Redis is a non-relational in-memory database. Data is stored in the memory. The memory reading speed is very fast. If it is just a simple key-value, the memory is not the bottleneck. Under normal circumstances, hash lookups can reach the order of millions of times per second.

(2) Use a single thread to avoid unnecessary context switching and race conditions.

(3) The internal implementation uses epoll, using a simple event framework implemented by epoll itself. Read, write, close, and connect in epoll are all converted into events, and then use the multiplexing feature of epoll to never waste any time on io.

Extended reading

Redis is an open source log-type, Key-Value database written in ANSI C language, supports the network, and can be based on memory or persistence. And provides APIs in multiple languages. Since March 15, 2010, the development of Redis has been hosted by VMware. Since May 2013, the development of Redis has been sponsored by Pivotal.

Redis is a key-value storage system. Similar to Memcached, it supports relatively more stored value types, including string (string), list (linked list), set (set), zset (sorted set - ordered set) and hash (hash type). These data types all support push/pop, add/remove, intersection, union, difference, and richer operations, and these operations are all atomic. On this basis, redis supports various different ways of sorting. Like memcached, data is cached in memory to ensure efficiency. The difference is that redis will periodically write updated data to disk or write modification operations to additional record files, and on this basis, master-slave (master-slave) synchronization is achieved.

Redis is a high-performance key-value database. The emergence of redis has largely compensated for the shortcomings of key/value storage such as memcached, and can play a very good supplementary role to relational databases in some situations. It provides Java, C/C, C#, PHP, JavaScript, Perl, Object-C, Python, Ruby, Erlang and other clients, which is very convenient to use.

Redis supports master-slave synchronization. Data can be synchronized from the master server to any number of slave servers, and the slave server can be a master server associated with other slave servers. This allows Redis to perform single-level tree replication. Saving can write data intentionally or unintentionally. Since the publish/subscribe mechanism is fully implemented, when the slave database synchronizes the tree anywhere, it can subscribe to a channel and receive the complete message release record of the master server. Synchronization is helpful for scalability and data redundancy of read operations.

The official website address of redis is very easy to remember, it is redis.io. (I checked specifically and found that the domain name suffix io ​​is a national domain name and is British Indian Ocean territory).

Currently, Vmware is funding the development and maintenance of the redis project.

For more Redis-related technical articles, please visit the Redis Tutorial## column to learn!

The above is the detailed content of Why is redis performance so high?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn