Redis中的数据都是存放到内存中的,这个跟redis的持久化无关哈(持久化只是相当于做备份)。然而每台服务器的内存都是有限的,那么如何分配内存给Redis使用呢?
A:首先要知道,redis默认是没有对可以使用多少内存做限制的,这样如果数据量大了的时候就会耗掉你 服务器所有的内存。导致你都无法进行维护。 B:设置Redis可以使用的最大内存是通过maxmemory参数来设置,例如:maxmemory 10GB C:生产中给redis分配最大内存的参照如下所示: ## 对数据持久化的需求(不管你是用RDB还是AOF持久化哈) a:预判高峰期时可能占用的内存能达到10G,但低峰区可能就5G就够了,此时也要设置成10G; b:当进行RDB持久和AOF重写时会占用额外的物理内存;在进行同步数据时也会占用额外的内存; c:所以服务器的物理内存至少要大于20G的配置; ## 对数据没有持久化的需求 a:预判高峰期时可能占用的内存能达到10G,但低峰区可能就5G就够了,此时也要设置成10G; b:没有持久化的需求,服务器的内存至少也要大于10G,方便后面的对最大内存的在线扩大;
当分配给redis的最大使用内存被用尽了时候,Redis如何进行内存释放呢,这个就得根据redis内存的释放策略来决定了。
原文地址:https://www.cnblogs.com/chenliangc/p/12355500.html
时间: 2024-10-05 03:34:15