Redis是一个字典结构的存储服务器,而实际上一个Redis实例提供了多个用来存储数据的字典,客户端可以将制定的书存储在哪个字典中,这与关系书库实例中可以i创建多个数据库类似,所以可以将其中的每个字典都理解为一个独立的数据库。
每个数据库默认都是从0开始的递增数字命名,Redis默认支持16个数据库,可以通过配置参数databases来修改这一数值。客户端与Redis建立链接后会自动选择0号数据库库,不过可以通过SELECT 命令更好数据库,如果要选择1号数据库,这命令如下:
redis> SELECT 1
OK
redis [1] Get foo
(nil)
注意上面提示(nil)表示 使用命令Get 获取键名=foo的值时,不存在名叫foo的键值
注意:
这些以数字命名的数据库与我们立即的数据库有所区别:
Redis不支持自定义数据库名,每个数据库都以编号命名,开发者必须记录哪些数据库使用了那些数据;
Redis数据库不支持为每个数据库设置不同的访问密码,所以客户端要么一个都不能连,要么全部可链接;
Redis多个数据库之间不是完全隔离的,比如FLUSHALL命令可以清空一个Redis实例中所有 数据库中的数据。
所以Redis数据库更像是一种命名空间,而不适合存储不同应用程序的数据。比如可以使用0号数据库存储某个应用生产环境下的数据,使用1号数据库存储测试环境下的数据,但不适合使用0号数据库存储A应用数据,1号数据库存储B应用数据库,不同的应用应该使用不同的Redis实例存储数据。由于Redis非常轻量级,一个空的Redis实例占用的内存只有1MB左右,所以不用担心多个Redis实例会额外占用很多内存。