Redis及Ubuntu14下搭建SSDB主從環(huán)境
在工作中接觸到了Redis,Redis是一個(gè)非常高效的key-value的數(shù)據(jù)庫(kù),在項(xiàng)目中廣泛使用,但是redis很明顯的缺點(diǎn)是對(duì)于內(nèi)存的處理,在項(xiàng)目上線之初,必須對(duì)內(nèi)存規(guī)劃合理,否則很容易出現(xiàn)內(nèi)存爆了的現(xiàn)象,一般較合理的內(nèi)存大小為電腦物理內(nèi)存的3/5。
Redis提供了多種數(shù)據(jù)類型,我經(jīng)常使用的為String 、Hash、List、Set、Sorted Set,基本能滿足項(xiàng)目對(duì)于數(shù)據(jù)類型的要求。我們使用的是Redis的Java客戶端,提供了一系列針對(duì)Redis命令對(duì)應(yīng)的api。redis的持久化提供了多種策略,但我們沒有去做持久化,自己研究了下,AOF方式感覺是最可靠的,原理和Mysql的二進(jìn)制日志很類似,也是將操作信息記錄下來寫到文件,從服務(wù)器去讀取日志并執(zhí)行操作。
在平常內(nèi)網(wǎng)開發(fā)中可能經(jīng)常需要調(diào)整數(shù)據(jù)存儲(chǔ)細(xì)節(jié),所以如果之前的數(shù)據(jù)依然駐留在內(nèi)存中,會(huì)導(dǎo)致很多功能無法正常運(yùn)行,所以在調(diào)整細(xì)節(jié)之后,需要對(duì)Redis數(shù)據(jù)庫(kù)Flushdb操作。
Redis與Ssdb在某些場(chǎng)景很適合使用,比如某些數(shù)據(jù)在數(shù)據(jù)庫(kù)中只能殘留2分鐘,類似YY頻道T人,固定幾分鐘后才能進(jìn)來,就可以使用setex key seconds value命令,之后判斷是否過期可以通過exists key 命令。
Redis常用命令網(wǎng)站:http://redis.readthedocs.org/en/latest/ 涵蓋了redis的命令及demo。
在搭Ssdb前說Redis,因?yàn)镾sdb很好的兼容了Redis的API。是Redis的很好替代品。
Ssdb相對(duì)于Redis來說有很多優(yōu)點(diǎn):是Redis數(shù)據(jù)庫(kù)的100倍容量,可以存儲(chǔ)幾十億的數(shù)據(jù)量。相對(duì)Redis來說,占用內(nèi)存很少。所以自己也去下載了ssdb,以下是ssdb搭建的過程。
- 環(huán)境:ubuntu14
- 虛擬機(jī)A: 192.168.1.251
- 虛擬機(jī)B: 192.168.1.252
- 網(wǎng)關(guān): 192.168.1.1
我的兩臺(tái)虛擬機(jī)是分別裝在不同的物理機(jī)上,但都采用的是橋接方式,ip地址都是在同一個(gè)ip段。
在兩臺(tái)虛擬機(jī)下分別都在線安裝下ssdb。
- wget--no-check-certificatehttps://github.com/ideawu/ssdb/archive/master.zip
- unzipmaster
- cdssdb-master
- make
- sudomakeinstall
這些在ssdb官網(wǎng)都能找到,http://www.ideawu.com/ssdb/zh_cn/。
ssdb主從搭建其實(shí)非常之簡(jiǎn)單,你只需要在兩臺(tái)虛擬機(jī)ssdb安裝目錄下找到ssdb.conf.
- sudovissdb.conf
修改server 下的ip為虛擬機(jī)默認(rèn)的IP地址。
虛擬機(jī)A:
- server:
- ip:192.168.1.251
- port:8888//我端口沒改,用默認(rèn)
虛擬機(jī)B:
- server:
- ip:192.168.1.252
- port:8888
這是最基本的配置。
現(xiàn)在只要在A的基礎(chǔ)上對(duì)于ssdb.conf下配置:
- replication:
- slaveof:
- #toidentifyamasterevenifitmoved(ip,portchanged)
- #ifsettoemptyornotdefined,ip:portwillbeused.
- id:svc_2
- #sync|mirror,defaultissync
- type:sync
- ip:192.168.1.252
- port:8888
注意:在以上的配置過程中,千萬不要用空格鍵,使用tab.
現(xiàn)在可以啟動(dòng)ssdb了。
- ./ssdb-serverssdb.conf
之后就可以使用ssdb提供的命令行工具來操作了。
虛擬機(jī)A:./ssdb-cli -h 192.168.1.251 -p 8888
虛擬機(jī)B:./ssdb-cli -h 192.168.1.252 -p 8888