Redis is an open source log-based, Key-Value database written in ANSIC language, supporting the network, memory-based or persistent, and provides APIs in multiple languages. From March 15, 2010, the development of Redis is hosted by VMware. Since May 2013, the development of Redis has been sponsored by Pivotal.
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 the master server associated with other slave servers. This allows Redis to perform single-level tree replication. Save to disk can write data intentionally or unintentionally. Since the publish/subscribe mechanism is fully implemented, when the slave database is synchronizing the tree anywhere, it can subscribe to a channel and receive the complete message publishing record of the master server. Synchronization is very helpful for the scalability and data redundancy of read operations.
Today I will share with you the in-depth understanding of the redis technical documents by the Alibaba P8 experts. It took 5 months to fully understand. Finally, I successfully joined Ant and got the p6 rank and the p7 salary! ! !
In order to help readers learn more specifically the content contained in the chapters, the topic of each chapter will be categorized as software development or system operation.
As the boundary between the two is getting blurred, a deep understanding of the topics in each trend can enhance the ability of you and your team to develop and deploy Redis solutions for projects quickly and efficiently, or use Redis as a technical infrastructure Part of the demand.
Chapter 1 introduces the Redis development philosophy explained by Salvatore Sanfilippo, the father and main maintainer of Redis . Why choose Redis? Or, what are the reasons why we choose any technology? Whenever a new technology or service appears, we can always hear those brave, cynical or knowledgeable people whispering about such issues . Sometimes the answer is obvious. The features and functions provided by the new technology or service can meet our urgent needs or solve difficult problems. In most cases, the reason for adopting a technology is not obvious, sometimes hidden in obscure marketing jargon. Different needs determine our choices. You may not be familiar with all the features of Redis, nor do you know how other companies use Redis. Redis is not only known for its fast execution speed, but solutions built with Redis can be iterated quickly, all of which rely on Redis's simple configuration, setup, operation and use.
Chapter 2 builds the basic knowledge of Redis for readers by elaborating and explaining Redis data structure and key management , including the important topic of how to construct meaningful and expressive key patterns for applications.
To use Redis as a data storage in an application, you need to consider the following two points: the key and its corresponding data structure. Formulating a set of good key patterns, grammar, and naming conventions is an efficient and stable solution and the watershed of technical confusion.
Redis allows most strings to be serialized as keys. This flexibility deserves careful consideration and design when designing Redis-based projects. For applications built with Redis, choosing an appropriate data structure for the key will have a direct impact on the usability and functionality of the system.
Chapter 3 explains various options provided by Redis to optimize application memory usage , including various caches based on Less Recently Used (LRU) supported by Redis and the key eviction (evict) strategy in Redis.
Compared with most data storage technologies, to use Redis efficiently, you need to fully understand the computer's memory technology and network and hard disk delays in order to track performance bottlenecks, and process resource planning and allocation. When Redis loads all data into RAM, the read and write of the application is limited by the technology of hardware and network connection, and then by the slower disk read and write operations used by traditional relational databases such as Oracle or MySQL.
Chapter 4 is about advanced topics related to application programming . This chapter starts with an overview of the core C language implementation of Redis, and deepens your understanding of Redis through an in-depth explanation of carefully selected C code snippets. Then I talked about how to use three different Redis clients, and showed programming examples using Python, Node.js and Haskell respectively.
Chapter 5 is about advanced topics related to application programming . This chapter starts with an overview of Redis server-side Lua scripts and how to use Lua more efficiently in Redis. After that, I expanded and explained some popular Redis programming design patterns, listed a few specific examples, and described how different individuals and companies use these patterns in their operations. At the end of this chapter, it describes how Redis is applied to a typical DevOps scenario from the perspective of a software developer.
Chapter 6 explores the two Redis clusters and Redis Sentinel recently added to Redis . Redis Sentinel is a special high-availability mode used to monitor the health of the master-slave server and can switch when any Redis master-slave instance fails. The Redis cluster mentioned earlier can now be used in a production environment. For large data that is too large to be stored in a single machine, Redis cluster can complete the storage by running multiple instances and sharding the keys. Although these topics are more focused on operational aspects, you should at least be aware of the benefits and limitations of Redis clusters when adopting Redis engineering solutions.
Chapter 7 admits one thing from the beginning, and that is that for most organizations, their information technology stack contains a heterogeneous mix of different types of data and processing solutions . Redis is an ideal way to expand other NoSQL data storage options. At the same time, in this chapter, we will see how Redis is used with MongoDB, ElasticSearch, and Fedora Digital Repository. Those developers and system administrators who need to use multiple solutions to develop and support complex business needs will be interested in the content of this chapter.
Chapter 8 introduces how to simplify management and improve the security and reliability of Redis-based solutions by using Redis in Docker containers and images . Docker is an open source container technology that is rapidly being adopted by many companies. After that, we will study the specific challenges of using Redis on the most popular computing cloud providers, including the largest and most mature Amazon Web Services. Google’s Compute Engine and Microsoft Azure, with special mention of other clouds Service providers, such as Rackspace and Digital Ocean. At the end of this chapter, we will study cloud services dedicated to Redis. These cloud services focus on hosting and managing Redis instances.
Chapter 9 begins with an in-depth exploration of Redis publish/subscribe commands . First, through different examples, it shows how different processes, different programs, different Redis clients, different operating systems, and publishers and consumers on remote computers communicate. After that, Redis' publish/subscribe model will be expanded, and Redis will be briefly introduced as a message communication queue between different layers in the enterprise computing ecosystem. At the end of this chapter, we will summarize all the concepts mentioned by using Redis and Celery as task management and message communication queues supporting the publish/subscribe mode-a detailed example.
Chapter 10 shows how Redis, as a real-time data aggregator, aggregates different data streams from various technical systems in the organization on the basis of the previous chapters . After that, the Redis security model and the newly added security features of the latest Redis version will be studied. There is also a web-based operational dashboard that will use our knowledge of the Redis client to visualize the data entered into Redis. Next, I will show how to apply machine learning algorithms (such as Naive Bayes) to these Redis-based information streams to provide a richer overview and deepen your understanding of the operations that occur within the organization or department.
This in-depth understanding of Redis has 300 pages, all of which are purely hand-written, and have been sorted and packaged. Friends who need the full version of the content can get a free method at the end of the article! !
Attached with an in-depth understanding of Redis learning video
I hope that when you study, you can not only master theoretical knowledge, but also learn with videos, so that you can better improve yourself, use knowledge flexibly, and test the truth in practice! ! !
Practice is the only criterion for testing truth! !
Deep understanding of Redis
Redis is currently the most popular open source key-value data structure server. It provides multiple functions on which multiple platforms can be built.
Because this document contains too much content, I can't show you all of it in detail. Friends who need the full version of the document can look below to get it!
Friends who need the full version of the document can get three links with one click, and get the free method below!