Redis是完全是开源免费的,遵循BSD协议(是一个给与使用者很大自由的协议),是一个高性能(NOSQL非关系型数据库)的key-value数据库,并提供多种语言的API。
它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。
特点:
1.性能极高-Redis能读的速度是110000次/s,写的速度是81000次/s。
2.丰富的数据类型-Redis支持的类型String,List, Hash, Set及Ordered Set数据类型操作。
3.原子-Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
4.丰富的特性-Redis还支持publish/subscribe,通知, key过期等等特性。
关系型数据库最典型的数据结构是表,表与表之间建立关联关系。
优点:
1、易于维护:都是使用表结构,格式一致;
2、使用方便:SQL语言通用,可用于复杂查询;
3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。
缺点:
1、读写性能比较差,尤其是海量数据的高效率读写;
2、固定的表结构,灵活度稍欠;
3、高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。
非关系型数据库严格地说是一种数据结构化存储方法的集合,为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。
这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指,向特定的数据。Key/value模型对于IT系统来说的优势在于简单、易部署。但是如果DBA只对部分值进行查询或更新的时候, Key/value就显得效率低下了。例如: Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB。
这部分数据库通常是用来应对分布式储存的海量数据。键任然存在,但是他们特点是指向多个列,这些列是由列家族安排的。例如:Cassandra、HBase、Riak。
文档型数据库的灵感是来自于Lotus Notes办公软件的,而且它同第一种键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。如: CouchDB, MongoDB。国内也有文档型数据库SequoiaDB,已经开源。
图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。NosQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要制定数据模型。许多NoSQL数据库都有REST式的数据接口或者查询API[2如: Neo4J, InfoGrid, Infinite Graph。
因此,我们总结NoSQL数据库在以下的这几种情况下比较适用:
1.数据模型比较简单;
2.需要灵活性更强的IT系统;
3.对数据库性能要求较高;
4.不需要高度的数据一致性;
5.对于给定key,比较容易映射复杂值的环境。
1.支持数据库持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载使用。
2.不仅仅支持简单的key-value数据类型,同时还提供list、set、zset、hash等数据类型的储蓄。
3.支持数据的备份,集群等高可用功能。
Redis由于读取速度很快,可以用做数据库、缓存(热点数据,经常会被查询但是不经常修改删除的数据),也可以做消息队列,消息中间件(聊天室等)。
1.安装gcc
redis是C语言编写的,所以需要gcc环境,之前安装nginx的时候安装过一次。
yum -y install gcc automake autoconf libtool make
2.安装Redis
1)下载redis安装包
wget http://download.redis.io/releases/redis-4.0.1.tar.gz
2)解压
var -zxvf redis-4.0.1.tar.gz
3)进入redis目录
cd redis-4.0.1
4)编译
make MALLOC=libc
5)安装
make PREFIX=/home/redis install
安装之后,会自动为我们创建一个redis目录,并将redis安装到该目录下。
1.启动redis:
进入redis/bin目录下,使用./redis-server启动redis
2.客户端连接redis:
复制一个窗口,进入redis/bin目录下,使用./redis-cli连接redis
可以使用ping命令查看redis是否启动