redis DB 多个
redis:db0-db15
在java中因为不同不DB 导致拿不到另一个DB的数据,怎么解决? 解决方法: 在java maven 项目中 application-dev.yml是可以指定spring: datasource: .... config: multi-statement-allow: true # redis配置 redis: database: 1 host: localhost port: 6379 password: timeout: 10000 pool: max-active: 1000 max-wait: -1 max-idle: 10 min-idle: 5
1. redis 数据库db0-db15
- 默认情况下,redis会生成0-15号共16个db,以供不同情境使用的需要
- 不同的数据库下,相同的key各自独立
2. 修改数据库的个数
- 修改redis的配置文件(redis.conf)可修改db的个数,只能修改配置文件来生效
- # redis 配置文件中
- databases 16
- 修改配置文件后需重启才能生效
3. 切换数据库--SELECT
在redis-cli下
- 切换到数据库1,
- 127.0.0.1:6379> select 1
- OK
- 127.0.0.1:6379[1]>
- 切换到数据库19
- 127.0.0.1:6379[1]> select 19
- OK
- 127.0.0.1:6379[19]>
- 获取当前的db数
- 127.0.0.1:6379[19]> CONFIG GET databases
- 1) "databases"
- 2) "20"
- 切换到不存在的db会报错
- 127.0.0.1:6379[19]> SELECT 20
- (error) ERR DB index is out of range
4. 查看数据库的使用情况
- 在redis-cli命令行下,通过INFO KEYSPACE 查看数据库db相关的统计信息
- 127.0.0.1:6379> info keyspace
- # Keyspace
- db0:keys=4,expires=0,avg_ttl=0
- 127.0.0.1:6379> select 1
- OK
- 127.0.0.1:6379[1]> info keyspace
- # Keyspace
- db0:keys=4,expires=0,avg_ttl=0
- 127.0.0.1:6379[1]> set 1 2
- OK
- 127.0.0.1:6379[1]> info keyspace
- # Keyspace
- db0:keys=4,expires=0,avg_ttl=0
- db1:keys=1,expires=0,avg_ttl=0
- info keyspace命令输出的统计信息是所有db的,不同db下执行结果相同