目錄
- redis設置database個數(shù)
- redis 多數(shù)據(jù)庫 database配置項解析
redis設置database個數(shù)
今天連公司數(shù)據(jù)庫,發(fā)現(xiàn)db達到255個,不知道為什么,其實是256個從0開始的
而我自己的只有16個
我是windows的,linux是一樣的,目錄結(jié)構(gòu)如圖:
編輯redis.conf配置文件,搜索database,可以找到:
databases 16
如圖:
通過看簡單描述,我們大概知道: 最后一句話,意思是,初始的DB是0,(默認的是16),你能自己選擇一個數(shù)字來作為數(shù)據(jù)庫的大小,但是不能為0,大概就是這樣…我們可以通過修改16,來達到你想要的=-=…
注意:啟動需要指定的配置文件。可以通過命令行啟動,在當前文件夾下啟動命令行 redis-server.exe ./redis.conf;
我寫了個bat文件: start redis-server.exe redis.conf還是在當前文件就好了…
redis 多數(shù)據(jù)庫 database配置項解析
讀到redis配置文件的時候,碰到databases 16我不明白了,然后開啟百度和google的搜索介紹之門,下面把我讀取文章吸取到的解釋介紹如下。
官方的解釋:可用數(shù)據(jù)庫數(shù),默認值為16,默認數(shù)據(jù)庫為0。
剛開始咋一看沒有明白,可用數(shù)據(jù)庫的個數(shù),redis一個實例不就是一個數(shù)據(jù)庫嗎。怎么還可以配置多個數(shù)據(jù)庫。這是因為Redis下,數(shù)據(jù)庫是由一個整數(shù)索引標識,而不是由一個數(shù)據(jù)庫名稱,可以直白的理解為配置不同的的庫,占用的是不同的內(nèi)存空間,不同的庫之間相互不影響,獨立工作,只不過都是借宿在這個Redis實例上面生存的空間。
Redis的配置文件中默認的數(shù)據(jù)庫總數(shù)為16個,默認它是一個下標基于0到15的數(shù)組:
databases 16
應用場景
為什么Redis會有這么一個設計場景呢,我想這是一個類似多租戶的概念。就像虛擬化和容器一樣,你可以虛擬出多臺機器和多個容器來,充分利用物理機器的硬件配置來work,達到服務器性能最大的利用率,各個虛擬機和容器之間單獨運行,互補影響和干擾,我想Redis的多數(shù)據(jù)庫也是同樣的道理。
場景:
你或許希望一個Redis應用(一個Redis server,或者一個Redis server/slaves群組)能為多個客戶端應用服務,如果這些客戶端應用都各自為營,向Redis寫數(shù)據(jù)的話,很可能會導致key沖突(我們知道Redis是一個key-value結(jié)構(gòu)的存儲結(jié)構(gòu))。為了將不同的應用分開,你可以用不同的前綴去區(qū)分(eg: app_i:xx:yy, app_ii:xx:yy)。這時候你就不用這么麻煩,就可以直接利用Redis分割這些key的機制:Database的概念。
每個數(shù)據(jù)庫都有屬于自己的空間,不必擔心之間的key沖突。
不同的數(shù)據(jù)庫下,相同的key取到各自的值。
flushdb命令清除數(shù)據(jù),只會清除當前的數(shù)據(jù)庫下的數(shù)據(jù),不會影響到其他數(shù)據(jù)庫。flushall命令會清除這個實例的數(shù)據(jù),在執(zhí)行這個命令之前要考慮清楚,我這里只是實驗環(huán)境,無所謂了。
數(shù)據(jù)庫的數(shù)量是可以配置的,默認情況下是16個。修改redis.conf下的databases指令:
databases 64
redis沒有提供任何方法來關(guān)聯(lián)標識不同的數(shù)據(jù)庫。因此,需要你來跟蹤什么數(shù)據(jù)存儲到哪個數(shù)據(jù)庫下或者什么業(yè)務的數(shù)據(jù)存在哪個庫里面,這個我覺得可以用Zookeeper來解決。
總結(jié)
Redis databases,從“客戶端應用都各自為營”和業(yè)務分離的角度來看,Database的概念是很適用的,它讓我們有清晰的數(shù)據(jù)劃分,可以放心的把注意力放在key的設計上。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:- 超強、超詳細Redis數(shù)據(jù)庫入門教程
- 淺談Redis的幾個過期策略
- Redis數(shù)據(jù)庫的安裝配置方法
- 詳解Spring Data操作Redis數(shù)據(jù)庫