NoSQL Redis
NoSQL表示Not Only SQL,意为”反SQL运动“,是一项全新的数据库革命性运动。早期就有人提出,发展至2009年趋势越来越高涨。它指的是非关系型的数据库。随着Web2.0兴起,传统的关系型数据库在应付Web2.0特别是超大规模和高并发的SNS类型的纯动态站点已经显得力不从心,暴露出很多难以克服的问题,非关系型数据库则由于自身的特点得到非常迅速的发展。
NoSQL的特点
NoSQL是以Key-Value形式存储,和传统的关系型数据库不一样,不一定遵循传统数据库的基本要求,比如遵循SQL标准、ACID属性、表结构等,非关系型数据库主要特点是:非关系型、分布式、开源、水平可扩展。
- 处理超大量的数据
- 运行在便宜的PC服务器集群上
- 击碎了性能瓶颈
NoSQL适应场景
- 对数据高并发读写
- 对海量数据的高效率存储和访问
- 对数据的高可扩展性和高可用性
Redis
Redis is an open source, advanced key-value store. It is often refered to as a data structure server since keys can contain strings, hashes, lists, sets and stored sets.
Redis是一个开源的先进的key-value存储,通常被常委数据结构服务器,因为键可以包含字符串、哈希、链表、集合、有序集合。
Redis是一个Key-Value存储系统,支持存储的Value类型很多,包括字符串string、量表list、集合set、有序集合zset。这些数据类型都支持pop/push、add/remove、取交集和并集及更丰富的操作。Redis支持各种不同方式的排序。为了保证效率,数据都缓存在内存中,也可以周期性把更新的数据写入磁盘或修改操作写入追加的记录文件。
Redis提供的API语言包括C、C++、C#、Clojure、Common Lisp、Erlang、Haskell、Java、Javascript、Lua、Objective-C、Perl、PHP、Python、Ruby、Scale、Go、Tcl。
Redis使用场景
目前全球最大的Redis用户是新浪微博,在新浪有200堕胎物理机,400多个端口正在运行着Redis,有4G+的数据在Redis上来为微博用户提供服务。
在新浪微博Redis的部署场景很多,大概分为两种:
- 应用程序直接访问Redis服务器
- 应用程序直接访问Redis,只有当Redis访问失败时才访问MySQL。
把大象装冰箱的过程
- 打开冰箱门
- 把大象装进去
- 把冰箱门关上
Redis数据库提供多种灵活的数据结构和数据操作,为不同的大象构建不同的冰箱。
把大象装入冰箱Redis具体的使用场景
- 获取最新
n
个数据的操作 - 排行榜引用,获取
top n
操作 - 需要精确设定过期时间的应用
- 计数器应用
- Uniq操作获取某段时间所有数据排重值
- 实时系统、反垃圾系统...
- Pub/Sub构建实时消息系统
- 构建队列系统
- 缓存
Redis安装部署
$ wget http://redis.googlecode.com/files/redis-x.x.x.tar.gz
$ tar zxvf redis-x.x.x.tar.gz
$ cd redis-x.x.x
$ mke && make install