• 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

  • 相关阅读:
    XO Wave-数字音频编纂软件
    LSS:撰写 LaTeX 的扶直对象
    Ubuntu 推出能主动装置编码器、Flash、Java、MS 字体的新包
    目前国内主要有4家“播客”网站
    开始换用 Delphi 2009
    关于 Delphi 中流的使用(10): 压缩与解压缩进度 回复 "ilst" 的问题
    试试带参数的 Exit
    在 Delphi 中调用 JavaScript(2)
    在 Delphi 中调用 JavaScript(1) 回复 "fancy" 的问题
    如何获取重载函数的地址 回复 "flq_00000" 的问题
  • 原文地址:https://www.cnblogs.com/xingchong/p/14790170.html
Copyright © 2020-2023  润新知