redis如何設置database個數


redis設置database個數

今天連公司數據庫,發現db達到255個,不知道為什么,其實是256個從0開始的

在這里插入圖片描述

而我自己的只有16個

在這里插入圖片描述

我是windows的,linux是一樣的,目錄結構如圖:

在這里插入圖片描述

編輯redis.conf配置文件,搜索database,可以找到:

databases 16

如圖:

在這里插入圖片描述

通過看簡單描述,我們大概知道: 最后一句話,意思是,初始的DB是0,(默認的是16),你能自己選擇一個數字來作為數據庫的大小,但是不能為0,大概就是這樣…我們可以通過修改16,來達到你想要的=-=…

注意:啟動需要指定的配置文件。可以通過命令行啟動,在當前文件夾下啟動命令行 redis-server.exe ./redis.conf;

我寫了個bat文件: start redis-server.exe redis.conf還是在當前文件就好了…

redis 多數據庫 database配置項解析

讀到redis配置文件的時候,碰到databases 16我不明白了,然后開啟百度和google的搜索介紹之門,下面把我讀取文章吸取到的解釋介紹如下。

官方的解釋:可用數據庫數,默認值為16,默認數據庫為0。

剛開始咋一看沒有明白,可用數據庫的個數,redis一個實例不就是一個數據庫嗎。怎么還可以配置多個數據庫。這是因為Redis下,數據庫是由一個整數索引標識,而不是由一個數據庫名稱,可以直白的理解為配置不同的的庫,占用的是不同的內存空間,不同的庫之間相互不影響,獨立工作,只不過都是借宿在這個Redis實例上面生存的空間。

Redis的配置文件中默認的數據庫總數為16個,默認它是一個下標基於0到15的數組:

databases 16

database.png

應用場景

為什么Redis會有這么一個設計場景呢,我想這是一個類似多租戶的概念。就像虛擬化和容器一樣,你可以虛擬出多台機器和多個容器來,充分利用物理機器的硬件配置來work,達到服務器性能最大的利用率,各個虛擬機和容器之間單獨運行,互補影響和干擾,我想Redis的多數據庫也是同樣的道理。

場景:

redisdatabase.png

你或許希望一個Redis應用(一個Redis server,或者一個Redis server/slaves群組)能為多個客戶端應用服務,如果這些客戶端應用都各自為營,向Redis寫數據的話,很可能會導致key沖突(我們知道Redis是一個key-value結構的存儲結構)。為了將不同的應用分開,你可以用不同的前綴去區分(eg: app_i:xx:yy, app_ii:xx:yy)。這時候你就不用這么麻煩,就可以直接利用Redis分割這些key的機制:Database的概念。

每個數據庫都有屬於自己的空間,不必擔心之間的key沖突。

不同的數據庫下,相同的key取到各自的值。

flushdb.png

flushdb命令清除數據,只會清除當前的數據庫下的數據,不會影響到其他數據庫。flushall命令短鏈接會清除這個實例的數據,在執行這個命令之前要考慮清楚,我這里只是實驗環境,無所謂了。

數據庫的數量是可以配置的,默認情況下是16個。修改redis.conf下的databases指令:

databases 64

redis沒有提供任何方法來關聯標識不同的數據庫。因此,需要你來跟蹤什么數據存儲到哪個數據庫下或者什么業務的數據存在哪個庫里面,這個我覺得可以用Zookeeper來解決。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM