Redis——最大內存設置maxmemory


啟動時設置 

單節點啟動
docker run -d --name redis6379 \
              -p 6379:6379 \
              -v /root/data/soft/redis/redis6379:/data \
              -m 1G --memory-swap 1G \
              redis:6.2.3 \
              --maxmemory 100m

集群節點部署
docker run -d --name redisnode1 \
              --net host \
              -v /root/data/soft/redis/redisnode1:/data \
              -m 1G --memory-swap 1G \
              redis:6.2.3 \
              --port 6301 \
              --cluster-enabled yes \
              --cluster-config-file cluster.conf \
              --maxmemory 800m

運行時修改

docker exec -it redisnode1 redis-cli -h 192.168.1.20 -p 6301 info | grep memory
docker exec -it redisnode1 redis-cli -h 192.168.1.20 -p 6301 config get maxmemory
docker exec -it redisnode1 redis-cli -h 192.168.1.20 -p 6301 config set maxmemory 800m

 

設置了maxmemory的選項,redis內存使用達到上限。可以通過設置LRU算法來刪除部分key,釋放空間。默認是按照過期時間的,如果set時候沒有加上過期時間就會導致數據寫滿maxmemory。

如果不設置maxmemory或者設置為0,64位系統不限制內存,32位系統最多使用3GB內存。

LRU是Least Recently Used 近期最少使用算法。

  • volatile-lru -> 根據LRU算法生成的過期時間來刪除。
  • allkeys-lru -> 根據LRU算法刪除任何key。
  • volatile-random -> 根據過期設置來隨機刪除key。
  • allkeys->random -> 無差別隨機刪。
  • volatile-ttl -> 根據最近過期時間來刪除(輔以TTL)
  • noeviction -> 誰也不刪,直接在寫操作時返回錯誤。

如果設置了maxmemory,一般都要設置過期策略。打開Redis的配置文件有如下描述,Redis有六種過期策略

 

redis.conf中的maxmemory定義REdis可用最大物理內存,有多種書寫方式,以下均為合法:

maxmemory 1048576
maxmemory 1048576B
maxmemory 1000KB
maxmemory 100MB
maxmemory 1GB
maxmemory 1000K
maxmemory 100M
maxmemory 1G

沒有帶單位尾巴的為字節數,以B結尾的表示相應的大小。但需要注意KB和K、MB和M、GB和G是不同的,如1K表示1000字節,而1KB則為1024字節。如果maxmemory值為0,表示不做限制。

 

查看當前redis節點內存狀態

[root@bogon mongo]# docker exec -it redisnode1 redis-cli -h 192.168.1.20 -p 6301 info | grep memory
used_memory:1797944
used_memory_human:1.71M
used_memory_rss:5668864
used_memory_rss_human:5.41M
used_memory_peak:1816760
used_memory_peak_human:1.73M
used_memory_peak_perc:98.96%
used_memory_overhead:1493440
used_memory_startup:1468256
used_memory_dataset:304504
used_memory_dataset_perc:92.36%
total_system_memory:3953971200
total_system_memory_human:3.68G
used_memory_lua:37888
used_memory_lua_human:37.00K
used_memory_scripts:0
used_memory_scripts_human:0B
maxmemory:838860800
maxmemory_human:800.00M
maxmemory_policy:noeviction

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM