作者:zjy135781012 | 来源:互联网 | 2023-06-13 16:28
篇首语:本文由编程笔记#小编为大家整理,主要介绍了08.Redis内存分配与优化相关的知识,希望对你有一定的参考价值。 Redis中的数据都是存放到内存中的,这个跟redis的持久化无关哈(持久化只是
篇首语:本文由编程笔记#小编为大家整理,主要介绍了08.Redis内存分配与优化相关的知识,希望对你有一定的参考价值。
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内存的释放策略来决定了。