In high-concurrency businesses, the accompanying problem is how to handle user requests accurately and error-free, and to respond quickly is the key. For the database, concurrency will cause a sudden increase in pressure, and the data may not be unified. question. So the design of the program is very important. The main scenarios are: grabbing tickets, flash sale products, etc...
1. Use memcacheq message queue
The first-in-first-out storage of the queue allows us to set the upper limit of the number of flash sale products, and store it in the cache, so that the user can request the server instantly When judging whether the current request quantity is greater than the total quantity of the product, if it is greater, it will jump to the static failure page. If it is consistent, it will enter the next process of the program.
2. Use memcached cache current limit
You can reduce the pressure on the database by processing user requests one by one within a limited time, and can provide reliable data. Use two caches to achieve the purpose of controlling the request to enter the data. For example, set key1 to true. At this time, the user can grab and enter the subsequent process. When entering, change the value to false. Other requests cannot enter (enter waiting and call recursively). Its value will be restored after the previous request is processed. Specific conditions Depends on demand.
3. Distribution situation
If it is a distributed server cluster, average the number of products to each server, and also determine whether it meets the requirements, just like option 1
Copyright statement: This article is original by the blogger Articles may not be reproduced without the permission of the blogger.
The above has introduced PHP's handling of high concurrency issues, including aspects of it. I hope it will be helpful to friends who are interested in PHP tutorials.