exception prompt: the memory is full and no more data can be saved. You can view the specific information of redis through redis cli
127.0.0.1:6379> info memory
# Memory
used_memory:168363320
used_memory_human:160.56M
used_memory_rss:150208512
used_memory_rss_human:143.25M
used_memory_peak:168425144
used_memory_peak_human:160.62M
used_memory_peak_perc:99.96%
used_memory_overhead:139522822
used_memory_startup:487096
used_memory_dataset:28840498
used_memory_dataset_perc:17.18%
total_system_memory:4143534080
total_system_memory_human:3.86G
used_memory_lua:37888
used_memory_lua_human:37.00K
maxmemory:124000000
maxmemory_human:118.26M
maxmemory_policy:noeviction
mem_fragmentation_ratio:0.89
mem_allocator:jemalloc-4.0.3
active_defrag_running:0
lazyfree_pending_objects:0
used_ memory_ Human represents used memory
used_ memory_ RSS represents the memory allocated by the system to redis (i.e. resident memory)
mem_ fragmentation_ ratio=used_ memory_ rss/used_ Memory ratio, in general, used_ memory_ RSS is slightly higher than used_ Memory, when there are many memory fragments, then memory_ fragmentation_ The ratio will be large, which can reflect whether there are many memory fragments
solutions:
1. Add redis memory and modify redis.conf
maxmemory 2gb
2. Modify the redis storage policy
The default redis setting is very conservative, that is, it will not be stored after memory overrun. You can change the policy to LRU algorithm (the least recently used algorithm) – the new stored information will replace the old information, so that the memory will not cross the line and redis.conf will not be modified
maxmemory-policy volatile-lru
3. Save unnecessary data in redis
After modifying the configuration, you must restart redis to take effect