Distributed cache server, the cache data is used since it is clear that want efficient data acquisition, large data storage capacity. To be able to cache large amounts of data and can efficiently retrieve data, so the database is necessary to solve the distributed cache data can be horizontal linear expansion, so you can expand the data capacity, followed by the cache itself under a large concurrent performance problems. Distributed Cache service needs to consider the following, horizontal linear expansion needs, then they would have a reasonable load balancing routing algorithms to solve problems, and to provide data backup, so when a server node machine done, you can start a copy. This will need to consider the problem of data consistency. Core technologies include distributed cache memory itself first and foremost management issues, including memory allocation, management and recovery mechanisms. Followed by distributed management and distributed algorithms, followed by the cache key management and routing.
magent: memcached as a proxy server which solves the problem of load balancing to automatically select the load data to the server node, it also provides data backup services, and when there is done when the machine will be available from the replica set data, of course, a copy of each set, and each server can be a proxy server.
I. Data collection: Cache
1, Cache defined
(1) narrow concept: to play a coordinating function between hardware devices relatively high-speed processing and main memory (Main Memory) of relatively low-speed processing CPU.
(2) broad concept: hardware used between two large speed difference, play a coordinating data transfer speed difference between the two structures.
Cache from the narrow concept since 1967 occurred over an extended period of application scenarios. Because the data processing speed of the CPU, much higher than the main memory, so there will be a cache device between the CPU and main memory, and even multi-level cache device. The broad concept, it is one definition has been widely accepted, and the generalized concept, Cache is no longer confined to the hardware, the software can also be. For example, relatively low-speed network for the difference in speed transmission and high-speed transmission between the disk opposite coordination.
2, the essence of the principle of the Cache
can be summarized in one sentence, that is: Cache the device you want to take a slow advance into the fast data devices.
3, several types of Cache
(1) CPU Cache: placed between the CPU and main memory to speed CPU operation on relatively slow main memory.
(2) Browser Cache: placed between the client and the server, the client used to accelerate a relatively slow operation on the server.
(3) Server Cache: placed between the network and the local file requests for accelerating network requests relatively slow operations to local files.
(4) CDN: CDN namely Content Delivery Network, set up in various parts of the node Cache, accelerating user relatively slow operation of the service network.
(5) Database Cache
(6) OS Cache: memory present in the hard disk read and write buffer area.
II. What is Memcached
Memcached is a high-performance, distributed memory object caching system, used in dynamic Web applications by alleviating database load. It does this by caching data and objects in memory to reduce the number read from the database, thereby enhancing the speed of dynamic, database-driven Web site. Memcached is based on a store key / value pairs hashmap. Its daemon (daemon) is written in C, but the client can be written in any language, and by agreement with the memcached daemon communication.
III. Typical Usage
1. When the user login filter, we save the user login status sesison to intercept the user is not in the landing state. But the session is a data server through cookie store sessionid be stored for the next cluster of servers, or if stored in the session through a proxy server over the request load on any server, so it would be impossible to ensure that users log in to intercept . Then we can through the tomcat session configuration data stored in the cache server.
2. Access data persistence layer L2 cache. When we need to improve the efficiency of the relational database to read, we may use the cache. Take Mybatis is itself provided with a second-level cache, also provides an interface. By implementing the interface we can cache the data you want to cache database and distributed cache for this database, the height of practicality far Cache database framework comes with its own.