如何减少Redis中的数据库默认数量?

时间:2018-03-15 13:47:07

标签: redis

Redis中默认的数据库数是16.我知道我们可以使用redis.conf来更改它,我在redis-cli上使用info-server命令检查了它的位置。 但是,当我试图将它减少到2时,它没有接受改变,而且,CONFIG GET数据库仍然给了我16。 那么,减少Redis中默认数据库数量的方法是什么?

1 个答案:

答案 0 :(得分:1)

更改数据库的数量:

  1. 修改redis.conf
  2. database值更改为14(如果您想减少2)
  3. 重新启动redis服务,这取决于您的操作系统和Redis安装,对于我的,Ubuntu,我必须从命令行sudo systemctl restart redis
  4. 运行

    所以你可能忘记了第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只是在保存时放入内存数据,因此没有先前的内存保留空数据库。在创建数据库时,您可能会对其他数据库管理内存或硬盘感到困惑

    无论如何,如果您担心内存泄漏,请查看maxmemorymaxmemory-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如何管理内存和操作的其他有用链接:

    https://redis.io/topics/faq

    https://redis.io/topics/memory-optimization