Redis中切换db


项目中一直使用redis来做数据缓存,但是一个服务器中开启太多个redis实例太影响管理了,那么有没有什么方法使不同的应用程序数据彼此分开的同时又存储在相同的实例上呢?就相当于mysql数据库,不同的应用程序数据存储在不同的数据库下。

redis下,数据库是由一个整数索引标识,而不是由一个数据库名称。默认情况下,一个客户端连接到数据库0。redis配置文件中下面的参数来控制数据库总数:

/etc/redis/redis.conf

文件中,有个配置项 databases = 16 (默认有16个数据库)

db redis 基本概念 redis的db有什么用_redis

可以通过下面的命令来切换到不同的数据库下

db redis 基本概念 redis的db有什么用_数据库_02

随后,所有的命令将使用数据库3,知道你明确的切换到另一个数据库下。

每个数据库都有属于自己的空间,不必担心之间的key冲突。

db redis 基本概念 redis的db有什么用_数据_03

不同的数据库下,相同的key取到各自的值。

db redis 基本概念 redis的db有什么用_数据库_04

flushdb命令清除数据,只会清除当前的数据库下的数据,不会影响到其他数据库。

db redis 基本概念 redis的db有什么用_redis_05

flushall命令会清除这个实例的数据。在执行这个命令前要格外小心。

db redis 基本概念 redis的db有什么用_数据_06

数据库的数量是可以配置的,默认情况下是16个。修改redis.conf下的databases指令:
redis没有提供任何方法来关联标识不同的数据库。因此,需要你来跟踪什么数据存储到哪个数据库下。
因此如果遇到开启很多个实例的场景,可以使用不同的数据库来存储,而不必开启如此那么多的实例。

在properties配置文件中加入以下代码

#redis选择database,例如选择db为1
REDIS.DB=1

则对应

db redis 基本概念 redis的db有什么用_数据库_07