在工做中接觸到了redis,Redis是一個很是高效的key-value的數據庫,在項目中普遍使用,可是redis很明顯的缺點是對於內存的處理,在項目上線之初,必須對內存規劃合理,不然很容易出現內存爆了的現象,通常較合理的內存大小爲電腦物理內存的3/5。mysql
redis提供了多種數據類型,我常用的爲string 、hash、list、set、sorted set,基本能知足項目對於數據類型的要求。咱們使用的是redis的Java客戶端,提供了一系列針對redis命令對應的api。redis的持久化提供了多種策略,但咱們沒有去作持久化,本身研究了下,AOF方式感受是最可靠的,原理和mysql的二進制日誌很相似,也是將操做信息記錄下來寫到文件,從服務器去讀取日誌並執行操做。git
在日常內網開發中可能常常須要調整數據存儲細節,因此若是以前的數據依然駐留在內存中,會致使不少功能沒法正常運行,因此在調整細節以後,須要對redis數據庫flushdb操做。github
redis與ssdb在某些場景很適合使用,好比某些數據在數據庫中只能殘留2分鐘,相似YY頻道T人,固定幾分鐘後才能進來,就可使用setex key seconds value命令,以後判斷是否過時能夠經過exists key 命令。
redis
redis經常使用命令網站:http://redis.readthedocs.org/en/latest/ 涵蓋了redis的命令及demo.sql
在搭ssdb前說redis,由於ssdb很好的兼容了redis的api。是redis的很好替代品。數據庫
ssdb相對於redis來講有不少優勢:是redis數據庫的100倍容量,能夠存儲幾十億的數據量。相對redis來講,佔用內存不多。因此本身也去下載了ssdb,如下是ssdb搭建的過程。ubuntu
環境:ubuntu14api
虛擬機A: 192.168.1.251
服務器
虛擬機B: 192.168.1.252
ide
網關: 192.168.1.1
個人兩臺虛擬機是分別裝在不一樣的物理機上,但都採用的是橋接方式,ip地址都是在同一個ip段。
在兩臺虛擬機下分別都在線安裝下ssdb.
wget --no-check-certificate https://github.com/ideawu/ssdb/archive/master.zip
unzip master
cd ssdb-master
make
sudo make install
這些在ssdb官網都能找到,http://www.ideawu.com/ssdb/zh_cn/。
ssdb主從搭建其實很是之簡單,你只須要在兩臺虛擬機ssdb安裝目錄下找到ssdb.conf.
sudo vi ssdb.conf
修改server 下的ip爲虛擬機默認的IP地址。
虛擬機A:
server:
ip:192.168.1.251
port:8888 //我端口沒改,用默認
虛擬機B:
server:
ip:192.168.1.252
port:8888
這是最基本的配置。
如今只要在A的基礎上對於ssdb.conf下配置:
replication:
slaveof:
# to identify a master even if it moved(ip, port changed)
# if set to empty or not defined, ip:port will be used.
id: svc_2
# sync|mirror, default is sync
type: sync
ip: 192.168.1.252
port: 8888
注意:在以上的配置過程當中,千萬不要用空格鍵,使用tab.
如今能夠啓動ssdb了。
./ssdb-server ssdb.conf
以後就可使用ssdb提供的命令行工具來操做了。
虛擬機A: ./ssdb-cli -h 192.168.1.251 -p 8888
虛擬機B: ./ssdb-cli -h 192.168.1.252 -p 8888