从01开始 从01开始
首页
  • 计算机科学导论
  • 数字电路
  • 计算机组成原理

    • 计算机组成原理-北大网课
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • Git
  • JavaSE
  • Java高级
  • JavaEE

    • Ant
    • Maven
    • Log4j
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • Servlet
  • Spring
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC
  • SpringBoot
  • 学习网课的心得
  • 输入法
  • 节假日TodoList
  • 其他
  • 关于本站
  • 网站日记
  • 友人帐
  • 如何搭建一个博客
GitHub (opens new window)

peterjxl

人生如逆旅,我亦是行人
首页
  • 计算机科学导论
  • 数字电路
  • 计算机组成原理

    • 计算机组成原理-北大网课
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • Git
  • JavaSE
  • Java高级
  • JavaEE

    • Ant
    • Maven
    • Log4j
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • Servlet
  • Spring
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC
  • SpringBoot
  • 学习网课的心得
  • 输入法
  • 节假日TodoList
  • 其他
  • 关于本站
  • 网站日记
  • 友人帐
  • 如何搭建一个博客
GitHub (opens new window)
  • JavaSE

  • JavaSenior

  • JavaEE

  • JavaWeb

  • Spring

  • 主流框架

    • Redis

      • Redis系列教程介绍
      • Redis介绍
      • Redis的安装和启停
      • Redis操作数据
      • Redis客户端
      • Redis命令返回值
      • 多数据库
        • 多数据库
        • 查看数据库中键的数量
        • 移动数据
        • 清空数据库
      • Redis中的事务
      • Redis中key的过期时间
      • Redis持久化数据
      • Redis的配置
      • Java连接Redis
      • Redis连接池
      • Redis搭建集群
      • Redis中的哨兵
      • Redis中的安全
      • 监控Redis
      • Redis小实验
      • Redis
    • Mybatis

    • Lucene

    • Elasticsearch

    • MQ

    • MyCat

    • Lombok

    • 主流框架
  • SpringMVC

  • SpringBoot

  • Java并发

  • Java源码

  • JVM

  • 韩顺平

  • Java
  • Java
  • 主流框架
  • Redis
2023-08-18
目录

多数据库

# 50.多数据库

MySQL等关系型数据库支持新建数据库,也就是可以多个数据库一起运行;在Redis中也有类似的机制。   ‍

# 多数据库

一个Redis实例提供了多个用来存储数据的字典,客户端可以指定将数据存储在哪个字典中。这与我们熟知的在一个关系数据库实例中可以创建多个数据库类似,所以可以将其中的每个字典都理解成一个独立的数据库。

每个数据库对外都是以一个从0开始的递增数字命名,Redis默认支持16个数据库,可以通过配置参数databases来修改这一数字。

客户端与Redis建立连接后会自动选择0号数据库,不过可以随时使用SELECT命令更换数据库,如要选择1号数据库:

redis> SELECT 1
OK
1
2

‍

如何查看当前是哪个数据库呢?如果切换为1数据库后,在命令行会有一个 [1]​ 的索引号:

127.0.0.1:6379[1]>
1

‍

除此之外,在使用编程语言交互时,可以查看相应库包的API,例如Java有一个框架Jedis,就可以连接Redis并操作数据,其中有个方法可以查看当前数据库:jedis.getDB()​

‍

这些以数字命名的数据库又与我们理解的数据库,还是有区别的:

  • 首先 Redis 不支持自定义数据库的名字,每个数据库都以编号命名,开发者必须自己记录哪些数据库存储了哪些数据。

  • 另外 Redis 也不支持为每个数据库设置不同的访问密码,所以一个客户端要么可以访问全部数据库,要么连一个数据库也没有权限访问。

  • 最重要的一点是多个数据库之间并不是完全隔离的,比如FLUSHALL命令可以清空一个Redis实例中所有数据库中的数据。

  • 综上所述,这些数据库更像是一种命名空间,而不适宜存储不同应用程序的数据:比如可以使用0号数据库存储某个应用生产环境中的数据,使用1号数据库存储测试环境中的数据;也不适宜使用0号数据库存储A应用的数据而使用1号数据库存储B应用的数据。

    不同的应用应该使用不同的Redis实例存储数据。由于Redis非常轻量级,一个空Redis实例占用的内存只有1MB左右,所以不用担心多个Redis实例会额外占用很多内存。

‍

# 查看数据库中键的数量

我们可以使用DBSIZE 查看当前数据库中键的数量:

redis> DBSIZE
(integer) 9
1
2

‍

# 移动数据

有时候我们想将某个key,移动到另一个数据库,此时可以使用move命令:

MOVE key db  #移动key到某个数据库
1

‍

# 清空数据库

‍

flushdb命令会清空当前数据库的所有键,慎用!

flushdb
1

‍

flushall命令则会情况所有数据库的所有内容,慎用!

flushall
1

‍

在GitHub上编辑此页 (opens new window)
上次更新: 2023/8/18 22:11:52
Redis命令返回值
Redis中的事务

← Redis命令返回值 Redis中的事务→

Theme by Vdoing | Copyright © 2022-2023 粤ICP备2022067627号-1 粤公网安备 44011302003646号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式