Redis中默认的数据库数是16.我知道我们可以使用redis.conf来更改它,我在redis-cli上使用info-server命令检查了它的位置。 但是,当我试图将它减少到2时,它没有接受改变,而且,CONFIG GET数据库仍然给了我16。 那么,减少Redis中默认数据库数量的方法是什么?
答案 0 :(得分:1)
更改数据库的数量:
redis.conf
database
值更改为14(如果您想减少2)sudo systemctl restart redis
所以你可能忘记了第3步,如果你不重新启动Redis服务,配置更改将无法使用
顺便说一句,AFAIK你没有像你说的那样用16个部分分发你的数据库,如果你不使用1到15个数据库,他们不会使用RAM,你只需消耗RAM你需要
更新
首先,非常奇怪的是你不能将数据库的数量减少到2,你是否已经在2-15的数据库上有一些数据? (记住第一个数据库是0)你在更改database
pram = 2后保存了redis.conf文件吗?您确定使用正确的命令重新启动Redis服务吗?
关于如何确认redis为未使用的数据库保留RAM,可以从in-memory
redis的性质中推断出来,并简单地看一下select
命令的定义:
https://redis.io/commands/select
Redis不同的可选数据库是命名空间的一种形式:所有数据库无论如何都保存在同一个RDB / AOF文件中。但是,不同的数据库可以具有相同名称的密钥
所以基本上Redis使用一些键名称空间,这些名称空间被添加到属于不同数据库的差异键的键名称中,并且由于Redis只是在保存时放入内存数据,因此没有先前的内存保留空数据库。在创建数据库时,您可能会对其他数据库管理内存或硬盘感到困惑
无论如何,如果您担心内存泄漏,请查看maxmemory
和maxmemory-policy
这是本文
http://oldblog.antirez.com/post/redis-as-LRU-cache.html
此外,如果您使用的是Redis v4.0.0 +,您可能会对memory doctor
感兴趣
和latency doctor
命令,但您需要Redis中的一些数据才能获得有用的信息。您还可以使用此Python控制台工具获取关键用法内存统计信息:
https://github.com/gamenet/redis-memory-analyzer
了解Redis如何管理内存和操作的其他有用链接: