This article will introduce to you the slow query and subscription mode in Redis, I hope it will be helpful to you!
Slow query
The slow query log is the execution time of each command when the system executes the command. When it exceeds the threshold, Just record this command. [Related recommendations: Redis video tutorial]
Redis command execution process
Send command
Command queuing
Command execution
Return result
Command execution is the time for slow query statistics
Two configuration parameters for slow query
slowlog-log -slower-than: Preset threshold, unit is milliseconds. If a "very slow" command is executed, the execution time exceeding the threshold will be recorded.
slowlog-max- len: Set the maximum number of slow query logs to store
Publish and subscribe mode
Redis provides a publish and subscribe function, which can be used for message transmission , Redis's publish and subscribe mechanism consists of three parts, publisher, subscriber and Channel.
Publish and subscribe function
- Use the publish command to send messages
##Subscribe to a channel using the subscribe command -
Pattern matching: subscribe to multiple channels at the same time, the command is PSUBSCRIBE -
Redis expiration time processing
Timing processing, create a timer when setting the expiration time, and perform the deletion operation immediately when the expiration time arrives. This operation is instant, no matter how many expired keys there are in this time period, or whether the server is running In any case, it will be deleted, which is not very friendly to the CPU.
Regular deletion. Regular deletion is to set a time interval. Each time period will detect whether there are expired keys. If there are, delete them.
When the expired key is accessed again, it will be judged whether the key has expired. If it has expired, it will be deleted and NIL will be returned. This processing method is friendly to the CPU. It will not occupy the CPU for other expired keys, but it is not friendly to memory. A key has expired, but it will not be deleted before it is operated, and it still takes up memory space. If there are a large number of expired keys that have not been operated again, it will Waste a lot of memory space.
3. RDB and AOF processing of expired keys
If you execute the save or bgsave command to create an RDB, the program will check the keys in the database, and expired keys will not is saved to the newly created RDB file.
When an expired key is lazily deleted or deleted periodically, the program will append a DEL command to the AOF file to explicitly record that the key has been deleted.
During the process of performing AOF rewriting, the program will check the keys in the database, and expired keys will not be saved in the rewritten AOF file.
Memory Recycling
noeviction: Default policy, no data will be deleted, all write operations will be rejected and client error information will be returned. At this time, Redis will only respond to read operations. .
volatitle-rlu: Delete keys with timeout attributes set according to the LRU algorithm until enough space is made. If there are no deletable key objects, fall back to the noeviction strategy.
allkeys-lru: Delete keys according to the LRU algorithm, regardless of whether the data has a timeout attribute set, until enough space is freed up.
allkeys-random: Randomly delete all keys until enough space is made.
volatitle-random: Randomly delete expired keys until enough space is made.
volatitle-ttl: Delete the most recently expired data based on the ttl attribute of the key-value object. If not, fall back to the noeviction strategy
For more programming-related knowledge, please visit:
Introduction to Programming! !
The above is the detailed content of What is slow query and subscription mode in Redis. For more information, please follow other related articles on the PHP Chinese website!