1. The operation of fetching the latest N data
For example, typically fetching the latest articles of your website, through the following method, we can get the latest 5000 comments The ID is placed in the List collection of Redis, and the excess part is obtained from the database
Use the LPUSH latest.comments
Use after the insertion is completed The LTRIM latest.comments 0 5000 command will always save only the latest 5000 IDs
Then we can use the following logic (pseudocode) when the client gets comments on a certain page
FUNCTION get_latest_comments (start,num_items): id_list =redis.lrange("latest.comments",start,start num_items-1) IFid_list.length < num_items id_list = SQL_DB("SELECT ... ORDER BY timeLIMIT ...") END RETURN id_listEND
If you have different filtering dimensions, such as the latest N items of a certain category, then you can build another List according to this category. If you only store IDs, Redis is very efficient.
2. Ranking application, take TOP N operations
The difference between this requirement and the above requirement is that the previous operation uses time as the weight, and this one uses a certain condition as the weight, such as To sort by the number of likes, our sorted set is needed at this time. Set the value you want to sort to the score of the sorted set, and set the specific data to the corresponding value. You only need to execute one ZADD command each time.
3. Applications that need to accurately set the expiration time
For example, you can set the score value of the sorted set mentioned above to the timestamp of the expiration time, then you can simply use expiration Time sorting, clearing expired data regularly, not only clearing expired data in Redis, you can completely regard the expiration time in Redis as an index of data in the database, use Redis to find out which data needs to be expired and delete, and then accurately Delete the corresponding record from the database.
4. Counter application
Redis commands are all atomic. You can easily use INCR and DECR commands to build a counter system.
5. Uniq operation to obtain the deduplication values of all data in a certain period of time
This is the most suitable to use the set data structure of Redis. You only need to keep throwing data into the set. set means collection, so it will be automatically deduplicated.
6. Real-time system, anti-spam system
Through the set function mentioned above, you can know whether an end user has performed a certain operation, and you can find the set of operations and analyze them. Statistical comparisons, etc. Nothing is impossible, only unimaginable.
7. Pub/Sub builds a real-time messaging system
Redis’ Pub/Sub system can build a real-time messaging system, such as many examples of real-time chat systems built with Pub/Sub.
8. Build a queue system
Use list to build a queue system, and use sorted set to even build a prioritized queue system.
9. Caching
The performance is better than Memcached, and the data structure is more diverse.
For more Redis related knowledge, please visit the Redis usage tutorial column!
The above is the detailed content of What business is suitable for using redis?. For more information, please follow other related articles on the PHP Chinese website!