Solution to insufficient memory when using redis in php: 1. Set the maximum memory size of Redis to 100M through the configuration file or command; 2. Get the current memory elimination strategy; 3. Through "config Set maxmemory-policy allkeys-lru" command can be used to modify the elimination policy.
We know that Redis is a memory-based key-value database. Because the memory size of the system is limited, we are using Redis You can configure the maximum memory size that Redis can use.
Set the memory size by adding the following configuration to the redis.conf configuration file under the Redis installation directory
/ /Set the maximum memory size of Redis to 100M maxmemory 100mb
The redis configuration file does not necessarily use the redis.conf file under the installation directory. When starting the redis service, you can pass a parameter to specify the redis configuration file.
Redis supports dynamically modifying the memory size through commands during runtime
//Set the maximum memory size occupied by Redis to 100M 127.0.0.1:6379> config set maxmemory 100mb //Get the maximum memory size that Redis can use 127.0.0.1:6379> config get maxmemory
If the maximum memory size is not set or the maximum memory size is set to 0 , there is no limit on the memory size under the 64-bit operating system, and up to 3GB of memory can be used under the 32-bit operating system
Now that the maximum occupancy of Redis can be set memory size, then the configured memory will be used up. Then when the memory runs out, won't there be no memory available if we continue to add data to Redis? In fact, Redis defines several strategies to handle this situation: noeviction (default strategy): No longer provides services for write requests and directly returns an error (except for DEL requests and some special requests) allkeys-lru: Use the LRU algorithm to eliminate from all keys volatile-lru: Use the LRU algorithm to eliminate from the keys with expiration time set allkeys-random: From Randomly eliminate data in all keys volatile-random: Randomly eliminate data from keys with expiration time set volatile-ttl: In keys with expiration time set, according to the expiration time of the key For elimination, the sooner they expire, the more priority they will be eliminated. When creating a strategy, if no key can be eliminated, the same error will be returned as
noevictionHow to obtain and set the memory elimination strategyGet the current Memory elimination policy: 127.0.0.1:6379> config get maxmemory-policy
Modify the elimination policy through the command:
127.0.0.1:6379> config set maxmemory-policy allkeys-lru
LRU algorithm What is LRU?Approximate LRU algorithm
1. phpStudy is the most commonly used development environment for novices to get started.
2. WampServer, WampServer is also as simple to operate as phpStudy and is more friendly to novices.
3. XAMPP, XAMPP (Apache MySQL PHP PERL) is a powerful integrated website building software package;
4. MAMP, MAMP is divided into two types: MAMP and MAMP Pro for Mac.
5. Pagoda Panel, Pagoda Panel is a server management software that supports Windows and Linux systems.
6. UPUPW, UPUPW is currently the most distinctive web server PHP suite under the Windows platform.
The above is the detailed content of How to solve the problem of insufficient memory when using redis in php. For more information, please follow other related articles on the PHP Chinese website!