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