Redis 資料庫理解

2022-08-18 17:00:16 字數 911 閱讀 5321

在實際專案中redis常被應用於做快取,分布式鎖、訊息佇列等。但是在搭建配置好redis伺服器後很多朋友應該會發現和有這樣的疑問,為什麼redis預設建立了16個資料庫(db0-db15)?

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

redis預設支援16個資料庫(db0-db15),可以通過調整redis的配置檔案redis/redis.conf中的databases來修改這乙個值,設定完畢後重啟redis便完成配置。

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

redis> select 1     # 預設0號db,切換為1號db

redis [1] > get name     # 從1號庫中獲取 name 

在實際專案中則可以通過以redis配置檔案的形式指定資料庫。

由於redis不支援自定義資料庫的名字,所以每個資料庫都以編號命名。開發者則需要自己記錄儲存的資料與資料庫的對應關係。另外redis也不支援為每個資料庫設定不同的訪問密碼,所以乙個客戶端要麼可以訪問全部資料庫,要麼全部資料庫都沒有許可權訪問。但是,要正確地理解redis的「資料庫」概念。對於redis來說這些db更像是一種命名空間,且不適宜儲存不同應用程式的資料。比如可以使用0號資料庫儲存某個應用生產環境中的資料,使用1號資料庫儲存測試環境中的資料,但不適宜使用0號資料庫儲存a應用的資料而使用1號資料庫b應用的資料,不同的應用應該使用不同的redis例項儲存資料。redis非常輕量級,乙個空redis例項占用的內在只有1m左右,所以不用擔心多個redis例項會額外占用很多記憶體。

redis資料庫理解

1.redis 是什麼 這個問題的結果影響了我們怎麼用 redis 如果你認為 redis 是乙個key value store,那可能會用它來代替 mysql 如果認為它是乙個可以持久化的 cache,可能只是它儲存一些頻繁訪問的臨時資料。redis 是remote dictionary serv...

Redis更新快取同步資料庫的理解

問題 當資料庫有資料更新時,怎樣保證redis快取中的資料與資料庫資料一致?redis更新的正確方法 原文 快取更新的套路 看到好些人在寫更新快取資料 時,先刪除快取,然後再更新資料庫,而後續的操作會把資料再裝載的快取中。然而,這個是邏輯是錯誤的。試想,兩個併發操作,乙個是更新操作,另乙個是查詢操作...

Redis資料庫(初級)

redis是乙個開源的非關係型資料庫,它採用c語言編寫,是乙個key value儲存系統,它儲存的value型別很多,包括string 字串 list 鍊錶 set 集合 zset 有序集合 hash 雜湊 比如,我們插入一條資料,如下 python view plain copy import r...