Redis 数据库分区
我刚接触Redis,正在用redis-py来操作数据库。我想把数据库分成几个部分,这样我就可以在一个部分进行实验,而把重要的信息存储在另一个部分。这样做可以吗???
我一直在寻找关于下面这段代码中db的意思:
r= redis.StrictRedis(host = 'localhost', port =6379, db =0 )
但是我还没有找到任何清晰的文档。我觉得db可能是指数据库的分区,但找不到类似的解释。
如果有人能帮忙,我将非常感激。谢谢!!
1 个回答
4
没错,一个Redis实例可以包含多个数据库,完全可以满足你的需求。
Redis的配置文件会告诉你这个实例有多少个数据库。默认情况下,大概是16个。
在Ubuntu系统上,这个文件的位置是/etc/redis/redis.conf。
文件里会有一段看起来像这样的内容:
# Set the number of databases. The default database is DB 0, you can select
# a different one on a per-connection basis using SELECT <dbid> where
# dbid is a number between 0 and 'databases'-1
databases 16
你可以修改这个设置,然后重启Redis(在Ubuntu上)使用:
sudo /etc/init.d/redis-server restart
使用redis-py时,你可以通过db参数选择连接到哪个数据库,这一点你应该已经了解了。
在命令行中,你可以用-n参数连接到特定的数据库:
redis-cli -n 3
在Redis客户端里,你可以用SELECT命令切换数据库:
select 3
我们使用了多个Redis数据库(实际上超过100个),但对于你正在做的事情,这样做并不推荐。大多数人会建议你选择一种键命名规则,这样在一个数据库里也能实现命名空间的效果。
比如像data:<a>:<b>
和result:<x>:<y>
这样的键,可能就适合你的使用场景。