我的编程空间,编程开发者的网络收藏夹
学习永远不晚

redis默认建立16个数据库的原因

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

redis默认建立16个数据库的原因

这篇文章给大家分享的是有关redis默认建立16个数据库的原因的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

在实际的开发工作中,我们通常会使用redis数据库做缓存、分布式锁/消息队列等。但是我们通常会有这样一个疑问,为什么在搭建配置好redis服务器之后,默认建立了16个数据库?

下面我们就来为大家介绍一下这个疑问。

redis默认建立16个数据库的原因

一、16个数据库的由来

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

redis默认建立16个数据库的原因

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

redis默认建立16个数据库的原因

客户端与redis建立链接后会默认选择0号数据库,不过可以随时使用select命令更换数据库。

# 切换数据库操作:切换到1
127.0.0.1:6379> SELECT 1
OK
127.0.0.1:6379[1]>
127.0.0.1:6379[1]>
# 切换到0
127.0.0.1:6379[1]> SELECT 0
OK
127.0.0.1:6379>
# 从1号库中获取username
127.0.0.1:6379[1]> get username 。

(学习视频分享:redis视频教程)

在实际项目中则可以通过以redis配置文件的形式指定数据库,如下图所示

redis默认建立16个数据库的原因

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

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

三、集群情况下是否支持一个实例多个db?

以上所说的都是基于单体redis的情况。而在集群的情况下不支持使用select命令来切换db,因为redis集群模式下只有一个db0

感谢各位的阅读!关于“redis默认建立16个数据库的原因”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

redis默认建立16个数据库的原因

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Redis为什么默认16个数据库

注:本文原作者并没有解释‘为什么’,只是说是配置文件默认16.       所以我猜redis作者只是在告诉使用者,这个数请随意改。 导读:在实际项目中Redis常被应用于做缓存,分布式锁、消息队列等。但是在搭建配置好Redis服务器后很多朋友应该会发现和
Redis为什么默认16个数据库
2018-01-15

Redis为什么默认有16个数据库问题

这篇文章主要介绍了Redis为什么默认有16个数据库问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-02-16

PHP如何为 XML 解析器建立默认的数据处理器

本篇文章介绍了如何在PHP中为XML解析器建立默认的数据处理器,方便处理和存储解析后的XML数据。步骤包括定义数据处理器、注册数据处理器、开始解析,数据处理器将解析数据并存储在指定的数据结构中。示例代码演示了如何使用自定义数据处理器解析XML数据。此外,文章也介绍了使用DOMDocument对象、SimpleXML和SAX等高级选项,并提供了相关资源链接,方便读者深入学习XML数据处理。
PHP如何为 XML 解析器建立默认的数据处理器
2024-04-02

Python如何为 XML 解析器建立默认的数据处理器

Python可为XML解析器建立默认数据处理器,将解析后的XML数据转换为Python对象。自定义数据处理器是一个继承自ContentHandler类的类,覆盖其方法来处理不同类型的XML数据。通过设置默认数据处理器或使用其他方法,如事件处理器、SAX解析器或lxml库,Python提供了灵活性和定制性,以有效处理XML数据。
Python如何为 XML 解析器建立默认的数据处理器
2024-04-02

Java如何为 XML 解析器建立默认的数据处理器

本文介绍了如何为JavaXML解析器建立默认数据处理器。通过创建SAXParserFactory、设置名称空间支持、创建SAXParser并注册默认数据处理器,可以自定义解析逻辑。示例代码演示了如何执行这些步骤,为SAX解析器建立自定义数据处理器。通过遵循本文的步骤,可以根据具体需求定制XML解析行为。
Java如何为 XML 解析器建立默认的数据处理器
2024-04-02

C语言如何为 XML 解析器建立默认的数据处理器

在C语言中,可以通过XML解析库的API函数为XML解析器建立默认的数据处理器。首先包含必要的头文件,定义一个函数来处理XML数据,然后使用xmlSAX2SetDefaultHandler函数将其注册为默认数据处理器。最后,开始解析XML文档。该过程有助于自定义数据处理逻辑,以便解析XML事件并执行业务逻辑。
C语言如何为 XML 解析器建立默认的数据处理器
2024-04-02

Go语言如何为 XML 解析器建立默认的数据处理器

Go语言中,可以通过实现StartElement和EndElement方法为XML解析器建立默认数据处理器,以自定义处理XML元素和属性。通过xml.Decoder.SetDecoder方法设置默认数据处理器,可以实现诸如将XML元素映射到数据结构、根据属性值执行操作或验证文档结构等自定义处理。代码示例演示了如何建立和使用自定义数据处理器,为XML解析器提供了灵活性,可以根据需要处理文档。
Go语言如何为 XML 解析器建立默认的数据处理器
2024-04-02

编程热搜

目录