首頁 資料庫 Redis Redis的資料庫概念是什麼

Redis的資料庫概念是什麼

May 28, 2023 pm 12:13 PM
redis

一、16個資料庫的由來

Redis是一個字典結構的儲存伺服器,一個Redis實例提供了多個用來儲存資料的字典,客戶端可以指定將資料儲存在哪個字典中。  這與在一個關聯式資料庫實例中可以建立多個資料庫類似(如下圖所示),所以可以將其中的每個字典都理解成一個獨立的資料庫。

Redis的資料庫概念是什麼

以MySQL實例為例

Redis預設支援16個資料庫,可以透過調整Redis的設定檔redis/redis.conf中的databases來修改這個值,設定完畢後重啟Redis便完成設定。

Redis的資料庫概念是什麼

客戶端與Redis建立連線後會預設選擇0號資料庫,不過可以隨時使用SELECT指令更換資料庫。

在實際專案中則可以透過以Redis設定檔的形式指定資料庫,如下圖所示

Redis的資料庫概念是什麼

二、正確理解Redis的“資料庫”概念

由於Redis不支援自訂資料庫的名字,所以每個資料庫都以編號命名。  開發者則需要自行記錄儲存的資料與資料庫的對應關係。  另外Redis也不支援為每個資料庫設定不同的存取密碼,所以一個客戶端要嘛可以存取全部資料庫,要嘛全部資料庫都沒有權限存取。 但是,要正確地理解Redis的「資料庫」概念這裡不得不提到一個命令:

Redis的資料庫概念是什麼

該命令可以清空實例下的所有資料庫數據,這與我們所熟知的關係型資料庫所不同。  關係型資料庫多個庫常用於儲存不同應用程式的資料 ,且沒有方式可以同時清空實例下的所有庫資料。  所以對Redis來說這些db更像是一種命名空間,且不適合儲存不同應用程式的資料。 例如可以使用0號資料庫儲存某個應用程式生產環境中的數據,使用1號資料庫儲存測試環境中的數據,但不適宜使用0號資料庫儲存A應用的資料而使用1號資料庫B應用的數據,不同的應用應該使用不同的Redis實例來儲存資料。  Redis非常輕量級,一個空Redis實例佔用的內在只有1M左右,所以不用擔心多個Redis實例會額外佔用很多記憶體。

三、叢集情況下是否支援一個實例多個db?

要注意以上所說的都是基於單體Redis的情況。  而在叢集的情況下不支援使用select指令來切換db,因為Redis叢集模式下只有一個db0。  再擴展一些群集與單機Reids的差別,有興趣的朋友可以去查閱相關的資料深入理解,這裡就不做討論了。

  • key批次作業支援有限: 例如mget、mset必須在一個slot

  • Key交易和Lua支援有限: 操作的key必須在一個節點

  • key是資料分區的最小粒度: 不支援bigkey分區

  • 不支援多個資料庫: 叢集模式下只有一個db0

  • 複製只支援一層: 不支援樹狀複製結構

#

以上是Redis的資料庫概念是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Windows11安裝10.0.22000.100跳出0x80242008錯誤解決方法 Windows11安裝10.0.22000.100跳出0x80242008錯誤解決方法 May 08, 2024 pm 03:50 PM

Windows11安裝10.0.22000.100跳出0x80242008錯誤解決方法

redis如何修改密碼 redis如何修改密碼 Apr 20, 2024 am 03:00 AM

redis如何修改密碼

剖析 PHP 函數瓶頸,提升執行效率 剖析 PHP 函數瓶頸,提升執行效率 Apr 23, 2024 pm 03:42 PM

剖析 PHP 函數瓶頸,提升執行效率

redis是記憶體快取嗎 redis是記憶體快取嗎 Apr 20, 2024 am 05:26 AM

redis是記憶體快取嗎

Golang API快取策略與最佳化 Golang API快取策略與最佳化 May 07, 2024 pm 02:12 PM

Golang API快取策略與最佳化

redis是非關係型資料庫嗎 redis是非關係型資料庫嗎 Apr 20, 2024 am 05:36 AM

redis是非關係型資料庫嗎

PHP開發中的快取機制與應用實戰 PHP開發中的快取機制與應用實戰 May 09, 2024 pm 01:30 PM

PHP開發中的快取機制與應用實戰

erlang和golang性能哪個好? erlang和golang性能哪個好? Apr 21, 2024 am 03:24 AM

erlang和golang性能哪個好?

See all articles