怎么设置centos限定redis使用的内存

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么设置centos限定redis使用的内存相关的知识,希望对你有一定的参考价值。

参考技术A 查看Redis的内存大小限制:
登陆redis-cli,执行
config get maxmemory

例如:

[root@server11 ~]# /usr/bin/redis-cli
127.0.0.1:6379> config get maxmemory
1) "maxmemory"
2) "0"
127.0.0.1:6379>

配置文件里也有对应项# maxmemory <bytes>,默认是0

例如:

[root@server11 ~]# cat /etc/redis.conf |grep maxmemory

没有配置maxmemory参数值或配置为0的话,32位系统上默认为3G,64位系统上无限制(其实有限制,就是系统上全部可用内存的大小)。

redis 提供 6种数据淘汰策略

淘汰策略的原因

在 redis 中,允许用户设置最大使用内存大小 server.maxmemory,在内存限定的情况下是很有用的。譬如,在一台 8G 机子上部署了 4 个 redis 服务点,每一个服务点分配 1.5G 的内存大小,减少内存紧张的情况,由此获取更为稳健的服务。

6中淘汰策略

redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。redis 提供 6种数据淘汰策略:

volatile-lru:从设置了过期时间的数据集中,选择最近最久未使用的数据释放;
allkeys-lru:从数据集中(包括设置过期时间以及未设置过期时间的数据集中),选择最近最久未使用的数据释放;
volatile-random:从设置了过期时间的数据集中,随机选择一个数据进行释放;
allkeys-random:从数据集中(包括了设置过期时间以及未设置过期时间)随机选择一个数据进行入释放;
volatile-ttl:从设置了过期时间的数据集中,选择马上就要过期的数据进行释放操作;
noeviction:不删除任意数据(但redis还会根据引用计数器进行释放),这时如果内存不够时,会直接返回错误。

默认的内存策略是noeviction,在Redis中LRU算法是一个近似算法,默认情况下,Redis随机挑选5个键,并且从中选取一个最近最久未使用的key进行淘汰,在配置文件中可以通过maxmemory-samples的值来设置redis需要检查key的个数,但是检查的越多,耗费的时间也就越久,但是结构越精确(也就是Redis从内存中淘汰的对象未使用的时间也就越久~),设置多少,综合权衡。

一般来说,推荐使用的策略是volatile-lru,并辨识Redis中保存的数据的重要性。对于那些重要的,绝对不能丢弃的数据(如配置类数据等),应不设置有效期,这样Redis就永远不会淘汰这些数据。对于那些相对不是那么重要的,并且能够热加载的数据(比如缓存最近登录的用户信息,当在Redis中找不到时,程序会去DB中读取),可以设置上有效期,这样在内存不够时Redis就会淘汰这部分数据。

配置文件

# maxmemory <bytes>
# volatile-lru -> remove the key with an expire set using an LRU algorithm
# allkeys-lru -> remove any key according to the LRU algorithm
# volatile-random -> remove a random key with an expire set
# allkeys-random -> remove a random key, any key
# volatile-ttl -> remove the key with the nearest expire time (minor TTL)
# noeviction -> don't expire at all, just return an error on write operations
# The default is:
# maxmemory-policy noeviction

我们可以设置maxmemory ,当数据达到限定大小后,会选择配置的策略淘汰数据

以上是关于怎么设置centos限定redis使用的内存的主要内容,如果未能解决你的问题,请参考以下文章

内存卡怎么设置密码?

如何共享自己的文件夹只限定给一个人使用或给共享文件夹设个密码呢?

Intellij IDEA 怎么设置JVM 内存

怎样设置虚拟内存的先后顺序

怎么设置虚拟内存

pagefile.sys文件删了后老是显示内存不足怎么办 虚拟内存设置了,但重启就又归零