为啥redis16个数据库_数据库外键怎么设置

为啥redis16个数据库_数据库外键怎么设置注:本文原作者并没有解释‘为什么’,只是说是配置文件默认16. 所以我猜redis作者只是在告诉使用者,这个数请随意改。 导读:在实际项目中Redis常被应用于做缓存,分布式锁、消息队列等。但是在搭…

Redis为什么默认16个数据库

注:本文原作者并没有解释‘为什么’,只是说是配置文件默认16.

      所以我猜redis作者只是在告诉使用者,这个数请随意改。

导读:在实际项目中Redis常被应用于做缓存,分布式锁、消息队列等。但是在搭建配置好Redis服务器后很多朋友应该会发现和有这样的疑问,为什么Redis默认建立了16个数据库,如下图所示。

为啥redis16个数据库_数据库外键怎么设置

一、16个数据库的由来Redis是一个字典结构的存储服务器,一个Redis实例提供了多个用来存储数据的字典,客户端可以指定将数据存储在哪个字典中。这与在一个关系数据库实例中可以创建多个数据库类似(如下图所示),所以可以将其中的每个字典都理解成一个独立的数据库。

为啥redis16个数据库_数据库外键怎么设置

以MySQL实例为例Redis默认支持16个数据库,可以通过调整Redis的配置文件redis/redis.conf中的databases来修改这一个值,设置完毕后重启Redis便完成配置。

为啥redis16个数据库_数据库外键怎么设置

客户端与Redis建立连接后会默认选择0号数据库,不过可以随时使用SELECT命令更换数据库。为啥redis16个数据库_数据库外键怎么设置在实际项目中则可以通过以Redis配置文件的形式指定数据库,如下图所示

为啥redis16个数据库_数据库外键怎么设置

二、正确理解Redis的“数据库”概念

为啥redis16个数据库_数据库外键怎么设置

由于Redis不支持自定义数据库的名字,所以每个数据库都以编号命名。开发者则需要自己记录存储的数据与数据库的对应关系。另外Redis也不支持为每个数据库设置不同的访问密码,所以一个客户端要么可以访问全部数据库,要么全部数据库都没有权限访问。但是,要正确地理解Redis的“数据库”概念这里不得不提到一个命令:为啥redis16个数据库_数据库外键怎么设置该命令可以清空实例下的所有数据库数据,这与我们所熟知的关系型数据库所不同。关系型数据库多个库常用于存储不同应用程序的数据 ,且没有方式可以同时清空实例下的所有库数据。所以对于Redis来说这些db更像是一种命名空间,且不适宜存储不同应用程序的数据。比如可以使用0号数据库存储某个应用生产环境中的数据,使用1号数据库存储测试环境中的数据,但不适宜使用0号数据库存储A应用的数据而使用1号数据库B应用的数据,不同的应用应该使用不同的Redis实例存储数据。Redis非常轻量级,一个空Redis实例占用的内在只有1M左右,所以不用担心多个Redis实例会额外占用很多内存。三、集群情况下是否支持一个实例多个db?

为啥redis16个数据库_数据库外键怎么设置

要注意以上所说的都是基于单体Redis的情况。而在集群的情况下不支持使用select命令来切换db,因为Redis集群模式下只有一个db0。再扩展一些集群与单机Reids的区别,感兴趣的朋友可以去查阅相关的资料深入理解,这里就不做讨论了。

  • key批量操作支持有限:例如mget、mset必须在一个slot
  • Key事务和Lua支持有限:操作的key必须在一个节点
  • key是数据分区的最小粒度:不支持bigkey分区
  • 不支持多个数据库:集群模式下只有一个db0
  • 复制只支持一层:不支持树形复制结构

为啥redis16个数据库_数据库外键怎么设置

四、总结Redis实例默认建立了16个db,由于不支持自主进行数据库命名所以以dbX的方式命名。默认数据库数量可以修改配置文件的database值来设定。对于db正确的理解应为“命名空间”,多个应用程序不应使用同一个Redis不同库,而应一个应用程序对应一个Redis实例,不同的数据库可用于存储不同环境的数据。最后要注意,Redis集群下只有db0,不支持多db。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/7985.html

(0)
上一篇 2023-03-09 20:00
下一篇 2023-03-10

相关推荐

  • 数据库的三级模式和两级映像_MySQL架构

    数据库的三级模式和两级映像_MySQL架构本文源码: "GitHub·点这里" || "GitEE·点这里" 一、数据场景 1、表结构简介 任何工具类的东西都是为了解决某个场景下的问

    2022-12-29
    163
  • 伪分布式环境下启动Hadoop下的Hive[亲测有效]

    伪分布式环境下启动Hadoop下的Hive[亲测有效]在本地搭建好伪分布式环境,打开虚拟机进入linux系统,如果是在root用户下则需要切换至Hadoop用户 su – hadoop 按需输入hadoop密码 在hadoop家目录下启动Hadoop集群

    2023-03-07
    155
  • Python Setuptools简介

    Python Setuptools简介a href=”https://www.python100.com/a/sm.html”font color=”red”免责声明/font/a a href=”https://beian.miit.gov.cn/”苏ICP备2023018380号-1/a Copyright www.python100.com .Some Rights Reserved.

    2024-08-10
    32
  • SQL SERVER 获取第一个非数字字符的位置「终于解决」

    SQL SERVER 获取第一个非数字字符的位置「终于解决」SELECT PATINDEX('%[^0-9]%','12212阿弥陀佛Position of NonNumeric Character') 参考资料 ht…

    2023-02-27
    147
  • mysql简单语法_sql高级语法

    mysql简单语法_sql高级语法从一个表中复制列插入到指定的表中: # 字段的值必须一样 INSERT INTO table2 SELECT * FROM table1; select 子查询 where子查询 # 必须针对一个字…

    2023-03-18
    160
  • excel 截取 字符串_excel 字符串比较

    excel 截取 字符串_excel 字符串比较怎么样可以从一串字符中的某个指定位置的前或后截取指定个数的字符.如:12345.6789,我要截取小数点前(或后)的3个字符.怎么样操作,另外,怎么样从右边截取字符,就是和left()函数相反的那个功能.=find(“.”,a2)返回在数字中字符(小数点)的位置。具体公式如下:字符(小数点)前三位=MID(A2,FIND(“.”,A2)-3,3)字符(小数点)后三个=MID(A2,FIND(“.”,A2)+1,3)字符(小数点)前面的所有数字=LEFT(A2,FIND(“

    2023-03-02
    162
  • Python range函数的使用

    Python range函数的使用Python作为一门高级编程语言,在编写程序时,经常涉及到循环等必须要对序列进行操作的情况。Python中,有一个非常重要的函数——range函数,它具有非常广泛的应用。在本篇文章中,我们将对Python range函数的基本语法及应用进行详细介绍,帮助读者更好的理解和掌握这个函数。

    2024-05-09
    64
  • 用途广泛的Python CGI编程详解

    用途广泛的Python CGI编程详解Python作为一种面向对象的解释型编程语言,具有简洁明了、易读易写、开发效率高等优点,在Web开发、人工智能、自动化测试等众多领域被广泛应用。在Web开发领域,Python的CGI编程是一种常用的技术,可以处理从Web服务器接收的信息并产生Web页面。在本文中,我们将从多个方面详细阐述Python CGI编程的使用方法和技巧。

    2024-01-09
    111

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注