真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Redis為什么默認(rèn)16個數(shù)據(jù)庫

今天就跟大家聊聊有關(guān)redis為什么默認(rèn)16個數(shù)據(jù)庫,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

創(chuàng)新互聯(lián)不只是一家網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司;我們對營銷、技術(shù)、服務(wù)都有自己獨(dú)特見解,公司采取“創(chuàng)意+綜合+營銷”一體化的方式為您提供更專業(yè)的服務(wù)!我們經(jīng)歷的每一步也許不一定是最完美的,但每一步都有值得深思的意義。我們珍視每一份信任,關(guān)注我們的網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計質(zhì)量和服務(wù)品質(zhì),在得到用戶滿意的同時,也能得到同行業(yè)的專業(yè)認(rèn)可,能夠?yàn)樾袠I(yè)創(chuàng)新發(fā)展助力。未來將繼續(xù)專注于技術(shù)創(chuàng)新,服務(wù)升級,滿足企業(yè)一站式全網(wǎng)整合營銷推廣需求,讓再小的成都品牌網(wǎng)站建設(shè)也能產(chǎn)生價值!

在實(shí)際項目中Redis常被應(yīng)用于做緩存,分布式鎖、消息隊列等。但是在搭建配置好Redis服務(wù)器后很多朋友應(yīng)該會發(fā)現(xiàn)和有這樣的疑問,為什么Redis默認(rèn)建立了16個數(shù)據(jù)庫,如下圖所示。

Redis為什么默認(rèn)16個數(shù)據(jù)庫

一、16個數(shù)據(jù)庫的由來

Redis是一個字典結(jié)構(gòu)的存儲服務(wù)器,一個Redis實(shí)例提供了多個用來存儲數(shù)據(jù)的字典,客戶端可以指定將數(shù)據(jù)存儲在哪個字典中。這與在一個關(guān)系數(shù)據(jù)庫實(shí)例中可以創(chuàng)建多個數(shù)據(jù)庫類似(如下圖所示),所以可以將其中的每個字典都理解成一個獨(dú)立的數(shù)據(jù)庫。

Redis為什么默認(rèn)16個數(shù)據(jù)庫

以MySQL實(shí)例為例

Redis默認(rèn)支持16個數(shù)據(jù)庫,可以通過調(diào)整Redis的配置文件redis/redis.conf中的databases來修改這一個值,設(shè)置完畢后重啟Redis便完成配置。

Redis為什么默認(rèn)16個數(shù)據(jù)庫

客戶端與Redis建立連接后會默認(rèn)選擇0號數(shù)據(jù)庫,不過可以隨時使用SELECT命令更換數(shù)據(jù)庫。

# 切庫 redis> SELECT 1 # 默認(rèn)0號db,切換為1號db OK redis [1] > GET username # 從1號庫中獲取 username  (nil)

在實(shí)際項目中則可以通過以Redis配置文件的形式指定數(shù)據(jù)庫,如下圖所示

Redis為什么默認(rèn)16個數(shù)據(jù)庫

二、正確理解Redis的“數(shù)據(jù)庫”概念

Redis為什么默認(rèn)16個數(shù)據(jù)庫

由于Redis不支持自定義數(shù)據(jù)庫的名字,所以每個數(shù)據(jù)庫都以編號命名。開發(fā)者則需要自己記錄存儲的數(shù)據(jù)與數(shù)據(jù)庫的對應(yīng)關(guān)系。另外Redis也不支持為每個數(shù)據(jù)庫設(shè)置不同的訪問密碼,所以一個客戶端要么可以訪問全部數(shù)據(jù)庫,要么全部數(shù)據(jù)庫都沒有權(quán)限訪問。但是,要正確地理解Redis的“數(shù)據(jù)庫”概念這里不得不提到一個命令:

# 清空一個Redis實(shí)例中所有數(shù)據(jù)庫中的數(shù)據(jù) redis 127.0.0.1:6379> FLUSHALL

該命令可以清空實(shí)例下的所有數(shù)據(jù)庫數(shù)據(jù),這與我們所熟知的關(guān)系型數(shù)據(jù)庫所不同。關(guān)系型數(shù)據(jù)庫多個庫常用于存儲不同應(yīng)用程序的數(shù)據(jù)  ,且沒有方式可以同時清空實(shí)例下的所有庫數(shù)據(jù)。所以對于Redis來說這些db更像是一種命名空間,且不適宜存儲不同應(yīng)用程序的數(shù)據(jù)。比如可以使用0號數(shù)據(jù)庫存儲某個應(yīng)用生產(chǎn)環(huán)境中的數(shù)據(jù),使用1號數(shù)據(jù)庫存儲測試環(huán)境中的數(shù)據(jù),但不適宜使用0號數(shù)據(jù)庫存儲A應(yīng)用的數(shù)據(jù)而使用1號數(shù)據(jù)庫B應(yīng)用的數(shù)據(jù),不同的應(yīng)用應(yīng)該使用不同的Redis實(shí)例存儲數(shù)據(jù)。Redis非常輕量級,一個空Redis實(shí)例占用的內(nèi)在只有1M左右,所以不用擔(dān)心多個Redis實(shí)例會額外占用很多內(nèi)存。

三、集群情況下是否支持一個實(shí)例多個db?

Redis為什么默認(rèn)16個數(shù)據(jù)庫

要注意以上所說的都是基于單體Redis的情況。而在集群的情況下不支持使用select命令來切換db,因?yàn)镽edis集群模式下只有一個db0。再擴(kuò)展一些集群與單機(jī)Reids的區(qū)別,感興趣的朋友可以去查閱相關(guān)的資料深入理解,這里就不做討論了。

  • key批量操作支持有限:例如mget、mset必須在一個slot

  • Key事務(wù)和Lua支持有限:操作的key必須在一個節(jié)點(diǎn)

  • key是數(shù)據(jù)分區(qū)的最小粒度:不支持bigkey分區(qū)

  • 不支持多個數(shù)據(jù)庫:集群模式下只有一個db0

  • 復(fù)制只支持一層:不支持樹形復(fù)制結(jié)構(gòu)

四、總結(jié)

Redis實(shí)例默認(rèn)建立了16個db,由于不支持自主進(jìn)行數(shù)據(jù)庫命名所以以dbX的方式命名。默認(rèn)數(shù)據(jù)庫數(shù)量可以修改配置文件的database值來設(shè)定。對于db正確的理解應(yīng)為“命名空間”,多個應(yīng)用程序不應(yīng)使用同一個Redis不同庫,而應(yīng)一個應(yīng)用程序?qū)?yīng)一個Redis實(shí)例,不同的數(shù)據(jù)庫可用于存儲不同環(huán)境的數(shù)據(jù)。最后要注意,Redis集群下只有db0,不支持多db。

看完上述內(nèi)容,你們對Redis為什么默認(rèn)16個數(shù)據(jù)庫有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。


網(wǎng)頁題目:Redis為什么默認(rèn)16個數(shù)據(jù)庫
鏈接地址:http://weahome.cn/article/ijdpop.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部