在工做中接触到了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