最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Redis為什么默認有16個數(shù)據(jù)庫問題

 更新時間:2023年02月16日 09:23:25   作者:走在小路  
這篇文章主要介紹了Redis為什么默認有16個數(shù)據(jù)庫問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

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

如下圖所示。

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

Redis是一個字典結(jié)構(gòu)的存儲服務(wù)器,一個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ù)庫的對應(yīng)關(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ù)庫多個庫常用于存儲不同應(yīng)用程序的數(shù)據(jù) ,且沒有方式可以同時清空實例下的所有庫數(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ù)據(jù)。

Redis非常輕量級,一個空Redis實例占用的內(nèi)在只有1M左右,所以不用擔(dān)心多個Redis實例會額外占用很多內(nèi)存。

集群情況下是否支持一個實例多個db?

要注意以上所說的都是基于單體Redis的情況。而在集群的情況下不支持使用select命令來切換db,因為Redis集群模式下只有一個db0。

再擴展一些集群與單機Reids的區(qū)別,感興趣的朋友可以去查閱相關(guān)的資料深入理解,這里就不做討論了。

  • key批量操作支持有限:例如mget、mset必須在一個slot
  • Key事務(wù)和Lua支持有限:操作的key必須在一個節(jié)點
  • key是數(shù)據(jù)分區(qū)的最小粒度:不支持bigkey分區(qū)
  • 不支持多個數(shù)據(jù)庫:集群模式下只有一個db0
  • 復(fù)制只支持一層:不支持樹形復(fù)制結(jié)構(gòu)

總結(jié)

Redis實例默認建立了16個db,由于不支持自主進行數(shù)據(jù)庫命名所以以dbX的方式命名。

默認數(shù)據(jù)庫數(shù)量可以修改配置文件的database值來設(shè)定。

對于db正確的理解應(yīng)為“命名空間”,多個應(yīng)用程序不應(yīng)使用同一個Redis不同庫,而應(yīng)一個應(yīng)用程序?qū)?yīng)一個Redis實例,不同的數(shù)據(jù)庫可用于存儲不同環(huán)境的數(shù)據(jù)。

最后要注意,Redis集群下只有db0,不支持多db。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Redis定期刪除過期數(shù)據(jù)的操作流程

    Redis定期刪除過期數(shù)據(jù)的操作流程

    Redis是一種內(nèi)存級數(shù)據(jù)庫,所有數(shù)據(jù)均存放在內(nèi)存中,內(nèi)存中的數(shù)據(jù)可以通過TTL指令獲取其狀態(tài),本文給大家介紹了Redis定期刪除過期數(shù)據(jù)的操作流程,文中通過代碼示例介紹的講解的非常詳細,需要的朋友可以參考下
    2024-05-05
  • Redis+自定義注解+AOP實現(xiàn)聲明式注解緩存查詢的示例

    Redis+自定義注解+AOP實現(xiàn)聲明式注解緩存查詢的示例

    實際項目中,會遇到很多查詢數(shù)據(jù)的場景,這些數(shù)據(jù)更新頻率也不是很高,一般我們在業(yè)務(wù)處理時,會對這些數(shù)據(jù)進行緩存,本文主要介紹了Redis+自定義注解+AOP實現(xiàn)聲明式注解緩存查詢的示例,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-04-04
  • Redis實現(xiàn)RBAC權(quán)限管理

    Redis實現(xiàn)RBAC權(quán)限管理

    本文主要介紹了Redis實現(xiàn)RBAC權(quán)限管理,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-03-03
  • Windows下Redis的安裝使用教程

    Windows下Redis的安裝使用教程

    這篇文章主要以圖文結(jié)合的方式為大家詳細介紹了Windows下Redis的安裝使用,Redis的出現(xiàn),很大程度補償了memcached這類key/value存儲的不足,在部分場合可以對關(guān)系數(shù)據(jù)庫起到很好的補充作用,對Redis感興趣的小伙伴們可以參考一下
    2016-05-05
  • 為Redis設(shè)置密碼的三種方法

    為Redis設(shè)置密碼的三種方法

    Redis 是一個高性能的鍵值對數(shù)據(jù)庫,廣泛應(yīng)用于緩存、消息隊列等場景,為了保障 Redis 服務(wù)的安全性,設(shè)置密碼認證是非常重要的一步,所以本文給大家介紹了為Redis設(shè)置密碼的三種方法,需要的朋友可以參考下
    2024-11-11
  • redis 數(shù)據(jù)刪除策略和逐出算法的問題小結(jié)

    redis 數(shù)據(jù)刪除策略和逐出算法的問題小結(jié)

    這篇文章主要介紹了redis 數(shù)據(jù)刪除策略和逐出算法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • Redis面試必備之緩存設(shè)計規(guī)范與性能優(yōu)化詳解

    Redis面試必備之緩存設(shè)計規(guī)范與性能優(yōu)化詳解

    你是否在使用Redis時,不清楚Redis應(yīng)該遵循的設(shè)計規(guī)范而苦惱,你是否在Redis出現(xiàn)性能問題時,不知道該如何優(yōu)化而發(fā)愁,快跟隨小編一起學(xué)習(xí)起來吧
    2024-03-03
  • Redis+threading實現(xiàn)多線程消息隊列的使用示例

    Redis+threading實現(xiàn)多線程消息隊列的使用示例

    Redis多線程消息隊列是一種使用Redis作為存儲后端的消息隊列實現(xiàn),它利用Redis的線程并發(fā)處理能力來提高消息隊列的處理效率,本文主要介紹了Redis+threading實現(xiàn)多線程消息隊列的使用示例,感興趣的可以了解一下
    2023-12-12
  • 基于session?Redis實現(xiàn)登錄

    基于session?Redis實現(xiàn)登錄

    這篇文章主要介紹了基于session?Redis實現(xiàn)登錄的相關(guān)資料,需要的朋友可以參考下
    2023-10-10
  • 詳解Redis如何處理Hash沖突

    詳解Redis如何處理Hash沖突

    在 Redis 中,哈希表是一種常見的數(shù)據(jù)結(jié)構(gòu),通常用于存儲對象的屬性,對于哈希表,最常遇到的是哈希沖突,那么,當(dāng) Redis遇到Hash沖突會如何處理?本文我們將詳細介紹Redis如何處理哈希沖突,需要的朋友可以參考下
    2024-09-09

最新評論

长乐市| 湖州市| 历史| 阜宁县| 自贡市| 长治县| 双鸭山市| 汉阴县| 临漳县| 万宁市| 年辖:市辖区| 讷河市| 边坝县| 碌曲县| 长子县| 偏关县| 克山县| 阿瓦提县| 德庆县| 汝阳县| 醴陵市| 东乡县| 饶阳县| 弥渡县| 呼和浩特市| 监利县| 南靖县| 乃东县| 肇源县| 霸州市| 栖霞市| 甘洛县| 涡阳县| 鄂州市| 毕节市| 安平县| 莱州市| 三门峡市| 白沙| 五大连池市| 台东县|