這篇文章主要講解了“Redis為什么默認建立16個數(shù)據(jù)庫”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Redis為什么默認建立16個數(shù)據(jù)庫”吧!
定海ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!在實際項目中Redis常被應用于做緩存,分布式鎖、消息隊列等。但是在搭建配置好Redis服務器后很多朋友應該會發(fā)現(xiàn)和有這樣的疑問,為什么Redis默認建立了16個數(shù)據(jù)庫? |
在實際項目中Redis常被應用于做緩存,分布式鎖、消息隊列等。但是在搭建配置好Redis服務器后很多朋友應該會發(fā)現(xiàn)和有這樣的疑問,為什么Redis默認建立了16個數(shù)據(jù)庫,如下圖所示。
一、16個數(shù)據(jù)庫的由來
Redis是一個字典結(jié)構(gòu)的存儲服務器,一個Redis實例提供了多個用來存儲數(shù)據(jù)的字典,客戶端可以指定將數(shù)據(jù)存儲在哪個字典中。這與在一個關(guān)系數(shù)據(jù)庫實例中可以創(chuàng)建多個數(shù)據(jù)庫類似(如下圖所示),所以可以將其中的每個字典都理解成一個獨立的數(shù)據(jù)庫。
以MySQL實例為例
Redis默認支持16個數(shù)據(jù)庫,可以通過調(diào)整Redis的配置文件redis/redis.conf中的databases來修改這一個值,設(shè)置完畢后重啟Redis便完成配置。
客戶端與Redis建立連接后會默認選擇0號數(shù)據(jù)庫,不過可以隨時使用SELECT 命令更換數(shù)據(jù)庫。
# 切庫 redis> SELECT 1 # 默認0號db,切換為1號db OK redis [1] > GET username # 從1號庫中獲取 username (nil)
在實際項目中則可以通過以Redis配置文件的形式指定數(shù)據(jù)庫,如下圖所示
二、正確理解Redis的“數(shù)據(jù)庫”概念
由于Redis不支持自定義數(shù)據(jù)庫的名字,所以每個數(shù)據(jù)庫都以編號命名。開發(fā)者則需要自己記錄存儲的數(shù)據(jù)與數(shù)據(jù)庫的對應關(guān)系。另外Redis也不支持為每個數(shù)據(jù)庫設(shè)置不同的訪問密碼,所以一個客戶端要么可以訪問全部數(shù)據(jù)庫,要么全部數(shù)據(jù)庫都沒有權(quán)限訪問。但是,要正確地理解Redis的“數(shù)據(jù)庫”概念這里不得不提到一個 命令:
# 清空一個Redis實例中所有數(shù)據(jù)庫中的數(shù)據(jù) redis 127.0.0.1:6379> FLUSHALL
該命令可以清空實例下的所有數(shù)據(jù)庫數(shù)據(jù),這與我們所熟知的關(guān)系型數(shù)據(jù)庫所不同。關(guān)系型數(shù)據(jù)庫多個庫常用于存儲不同應用程序的數(shù)據(jù) ,且沒有方式可以同時清空實例下的所有庫數(shù)據(jù)。所以對于Redis來說這些db更像是一種命名空間,且不適宜存儲不同應用程序的數(shù)據(jù)。比如可以使用0號數(shù)據(jù)庫存儲某個應用生產(chǎn)環(huán)境中的數(shù)據(jù),使用1號數(shù)據(jù)庫存儲測試環(huán)境中的數(shù)據(jù),但不適宜使用0號數(shù)據(jù)庫存儲A應用的數(shù)據(jù)而使用1號數(shù)據(jù)庫B應用的數(shù)據(jù),不同的應用應該使用不同的Redis實例存儲數(shù)據(jù)。Redis非常輕量級,一個空Redis實例占用的內(nèi)在只有1M左右,所以不用擔心多個Redis實例會額外占用很多內(nèi)存。
三、集群情況下是否支持一個實例多個db?
要注意以上所說的都是基于單體Redis的情況。而在集群的情況下不支持使用select命令來切換db,因為Redis集群模式下只有一個db0。再擴展一些集群與單機Reids的區(qū)別,感興趣的朋友可以去查閱相關(guān)的資料深入理解,這里就不做討論了。
key批量操作支持有限:例如mget、mset必須在一個slot
Key事務和Lua支持有限:操作的key必須在一個節(jié)點
key是數(shù)據(jù)分區(qū)的最小粒度:不支持bigkey分區(qū)
不支持多個數(shù)據(jù)庫:集群模式下只有一個db0
復制只支持一層:不支持樹形復制結(jié)構(gòu)
感謝各位的閱讀,以上就是“Redis為什么默認建立16個數(shù)據(jù)庫”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對Redis為什么默認建立16個數(shù)據(jù)庫這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
網(wǎng)站標題:Redis為什么默認建立16個數(shù)據(jù)庫-創(chuàng)新互聯(lián)
文章鏈接:http://sd-ha.com/article20/ccphco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、App設(shè)計、網(wǎng)站營銷、網(wǎng)站改版、虛擬主機、響應式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)