共计 2094 个字符,预计需要花费 6 分钟才能阅读完成。
在工作中接触到了 redis,Redis 是一个非常高效的 key-value 的数据库,在项目中广泛使用,但是 redis 很明显的缺点是对于内存的处理,在项目上线之初,必须对内存规划合理,否则很容易出现内存爆了的现象,一般较合理的内存大小为电脑物理内存的 3 /5。
redis 提供了多种数据类型,我经常使用的为 string、hash、list、set、sorted set,基本能满足项目对于数据类型的要求。我们使用的是 redis 的 Java 客户端,提供了一系列针对 redis 命令对应的 api。redis 的持久化提供了多种策略,但我们没有去做持久化,自己研究了下,AOF 方式感觉是最可靠的,原理和 mysql 的二进制日志很类似,也是将操作信息记录下来写到文件,从服务器去读取日志并执行操作。
在平常内网开发中可能经常需要调整数据存储细节,所以如果之前的数据依然驻留在内存中,会导致很多功能无法正常运行,所以在调整细节之后,需要对 redis 数据库 flushdb 操作。
redis 与 ssdb 在某些场景很适合使用,比如某些数据在数据库中只能残留 2 分钟,类似 YY 频道 T 人,固定几分钟后才能进来,就可以使用 setex key seconds value 命令,之后判断是否过期可以通过 exists key 命令。
redis 常用命令网站:http://redis.readthedocs.org/en/latest/ 涵盖了 redis 的命令及 demo.
在搭 ssdb 前说 redis, 因为 ssdb 很好的兼容了 redis 的 api。是 redis 的很好替代品。
ssdb 相对于 redis 来说有很多优点:是 redis 数据库的 100 倍容量,可以存储几十亿的数据量。相对 redis 来说,占用内存很少。所以自己也去下载了 ssdb,以下是 ssdb 搭建的过程。
Ubuntu 14.04 下 Redis 安装及简单测试 http://www.linuxidc.com/Linux/2014-05/101544.htm
Redis 集群明细文档 http://www.linuxidc.com/Linux/2013-09/90118.htm
Ubuntu 12.10 下安装 Redis(图文详解)+ Jedis 连接 Redis http://www.linuxidc.com/Linux/2013-06/85816.htm
Redis 系列 - 安装部署维护篇 http://www.linuxidc.com/Linux/2012-12/75627.htm
CentOS 6.3 安装 Redis http://www.linuxidc.com/Linux/2012-12/75314.htm
Redis 配置文件 redis.conf 详解 http://www.linuxidc.com/Linux/2013-11/92524.htm
环境:Ubuntu 14.04
虚拟机 A:192.168.1.251
虚拟机 B:192.168.1.252
网关: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
Redis 的详细介绍 :请点这里
Redis 的下载地址 :请点这里
更多 Ubuntu 相关信息见 Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2