redis内存策略

为了保证服务器正常运行,需要为redis设定最大的内存空间,但是如果数据一直新增,内存很快就会占满:

  采用LRU算法;可以讲内存中最近最不常使用的数据清空,保存其他的数据;

  内存的优化:

  1.设定内存空间,建议内存不要超过1G 256-512M

  2.内存策略:

   volatile-lru---------->为已经添加了超时时间的数据采用LRU算法进行删除

   allkeys-lru---------->所有的key中通过LRU算法进行删除

   volatile-random--->在已经设定超时时间的数据中,随机删除

   allkeys-random--->在所有的key中,使用LRU算法进行随机删除

   volatile-ttl----------->在已经设定超时时间的数据中,根据TTL机制排序,将马上要过期的数据删除

   noeviction------(默认的)---->如果采用该机制,那么内存数据不会删除,将报错消息返回给用户

内存优化:

  1. 随时查看info memory,了解内存使用状况
used_memory:2314624 //(字节单位形式)
used_memory_human:2.21M //Redis已分配的内存总量(易读单位形式)
used_memory_rss:1282048
used_memory_rss_human:1.22M //操作系统为Redis进程分配的内存总量
used_memory_peak:18010560
used_memory_peak_human:17.18M //最大使用内存总量(峰值)
used_memory_peak_perc:12.85% 
used_memory_overhead:2078792
used_memory_startup:963088
used_memory_dataset:235832
used_memory_dataset_perc:17.45%
total_system_memory:4294967296
total_system_memory_human:4.00G
used_memory_lua:37888
used_memory_lua_human:37.00K //缓存Lua脚本占用的内存
maxmemory:0
maxmemory_human:0B //最大内存限制,0表示无限制
maxmemory_policy:noeviction //超过内存限制后的处理策略
mem_fragmentation_ratio:0.55 //碎片率(used_memory_rss/used_memory的比值),>1表示有碎片,<1表示部分Redis的内存被系统交换到硬盘(此时Redis性能变差)
mem_allocator:libc 
active_defrag_running:0
lazyfree_pending_objects:0

https://www.cnblogs.com/susufufu/p/7875210.html

2. 数据结构优化

  • 共享内存
  • 采用压缩编码
  • 数据类型替换
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值