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的个数,只能修改配置文件来生效
  1.   # redis 配置文件中
  2.   databases 16
  • 修改配置文件后需重启才能生效

3. 切换数据库--SELECT

在redis-cli下

  • 切换到数据库1,
  1.   127.0.0.1:6379> select 1
  2.   OK
  3.   127.0.0.1:6379[1]>
  • 切换到数据库19
  1.   127.0.0.1:6379[1]> select 19
  2.   OK
  3.   127.0.0.1:6379[19]>
  • 获取当前的db数
  1.   127.0.0.1:6379[19]> CONFIG GET databases
  2.   1) "databases"
  3.   2) "20"
  • 切换到不存在的db会报错
  1.   127.0.0.1:6379[19]> SELECT 20
  2.   (error) ERR DB index is out of range

4. 查看数据库的使用情况

  • 在redis-cli命令行下,通过INFO KEYSPACE 查看数据库db相关的统计信息
  1.   127.0.0.1:6379> info keyspace
  2.   # Keyspace
  3.   db0:keys=4,expires=0,avg_ttl=0
  4.   127.0.0.1:6379> select 1
  5.   OK
  6.   127.0.0.1:6379[1]> info keyspace
  7.   # Keyspace
  8.   db0:keys=4,expires=0,avg_ttl=0
  9.   127.0.0.1:6379[1]> set 2
  10.   OK
  11.   127.0.0.1:6379[1]> info keyspace
  12.   # Keyspace
  13.   db0:keys=4,expires=0,avg_ttl=0
  14.   db1:keys=1,expires=0,avg_ttl=0
  • info keyspace命令输出的统计信息是所有db的,不同db下执行结果相同