Distributed caching is mainly used in highly concurrent environments to reduce the pressure on the database and improve the system's response speed and concurrent throughput. When a large number of read and write requests pouring into the database, the processing speed of the disk and memory is obviously not in the same order of magnitude, so adding a layer of cache before the database can significantly improve the response speed of the system and reduce the pressure on the database. As a traditional relational database, MySQL provides complete ACID operations, supports rich data types, powerful associative queries, where statements, etc., can be very easy to build query indexes, perform complex inner join, outer join, summing, sorting, grouping, etc., and supports stored procedures, functions and other features, product maturity, powerful. However, for the need to deal with highly concurrent access and storage of massive amounts of data for the scenario, out of performance considerations, had to give up a lot of traditional relational databases originally powerful features, at the expense of the ease of use of the system, and make the design and management of the system has become more complex. This also makes in the past few years, the popularity of another new storage solution - NoSQL, which with the traditional relational database is the biggest difference is that it does not use SQL as a query language to find data, but the key-value form of the lookup, providing a higher query efficiency and throughput, and can scale more easily, store massive amounts of data, partition on thousands of nodes, and automate data replication and backup. In distributed systems, messages are very widely used as a way of communication between applications. Messages can be kept in a queue until they are taken out by the receiver. Since the message sender does not need to wait synchronously for a response from the message receiver, the asynchronous reception of messages reduces the coupling of system integration and improves the efficiency of distributed system collaboration, enabling the system to respond to the user faster and provide higher throughput.
When the system is under peak pressure, the distributed message queue is also able to act as a buffer, shaving peaks and filling valleys to alleviate the pressure on the cluster and prevent the entire system from being overwhelmed. Verticalized search engine in the distributed system is a very important role, it can meet the user for full-text search, fuzzy matching needs, to solve the problem of databaselike query inefficiency, but also to solve the distributed environment, due to the use of the library and table, or the use of NoSQL databases, resulting in the inability to carry out multi-table correlation or complex query problems.