ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
相较于memcached的预分配内存管理,Redis使用现场申请内存的方式来存储数据,并且很少使用free-list等方式来优化内存分配,会在一定程度上存在内存碎片。Redis跟据存储命令参数,会把带过期时间的数据单独存放在一起,并把它们称为临时数据,非临时数据是永远不会被剔除的,即便物理内存不够,导致swap也不会剔除任何非临时数据(但会尝试剔除部分临时数据) ### Maxmemory配置指令 `maxmemory`配置指令用于配置Redis存储数据时指定限制的内存大小。通过redis.conf可以设置该指令,或者之后使用CONFIG SET命令来进行运行时配置。 例如为了配置内存限制为100mb,以下的指令可以放在`redis.conf`文件中。 ~~~ maxmemory 100mb ~~~ 设置`maxmemory`为0代表没有内存限制。对于64位的系统这是个默认值,对于32位的系统默认内存限制为3GB。 当指定的内存限制大小达到时,需要选择不同的行为,也就是**策略**。 Redis可以仅仅对命令返回错误,这将使得内存被使用得更多,或者回收一些旧的数据来使得添加数据时可以避免内存限制