Redis默认的数据库数量是16个。我知道我们可以使用redis.conf更改此设置,我在redis-cli上使用info-server命令检查了其位置。但是,当我试图将其减少到2时,它没有生效,CONFIG GET databases仍然给出16个。那么,如何减少Redis中默认数据库的数量?
Redis默认的数据库数量是16个。我知道我们可以使用redis.conf更改此设置,我在redis-cli上使用info-server命令检查了其位置。但是,当我试图将其减少到2时,它没有生效,CONFIG GET databases仍然给出16个。那么,如何减少Redis中默认数据库的数量?
更改数据库数量的方法:
redis.conf
databases
值更改为14(如果您想减少2个)sudo systemctl restart redis
如果您没有执行第3步,配置更改将不会生效。
顺便说一下,据我所知,您并没有像您说的那样将数据库分成16个部分。如果您没有使用1到15号数据库,则它们不会占用RAM,您只会使用所需的RAM。
更新
首先,您无法将数据库数量减少到2非常奇怪。您是否已经在2-15号数据库上存储了一些数据?(请记住,第一个数据库是0)。您是否保存了更改后的redis.conf文件?您确定您正在使用正确的重启Redis服务的命令吗?
关于如何确认Redis保留未使用的数据库的内存,您可以从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如何管理内存和运作: