1.Redis简介
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
2.NoSQL简介
NoSQL,泛指非关系型的数据库。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。
3.NoSQL数据库四大分类
①键值(key-value)存储数据库。这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。例如Redis;
②列存储数据库。这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。例如HBase;
③文档型数据库。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。档型数据库可以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。例如MongoDB;
④图形(Graph)数据库。它是使用灵活的图形模型,并且能够扩展到多个服务器上。如Neo4J。
下表是关于各种数据库类型的区别:
4.NoSQL数据库适用范围
①数据模型比较简单;
②需要灵活性更强的IT系统;
③对数据库性能要求较高;
④不需要高度的数据一致性;
⑤对于给定key,比较容易映射复杂值的环境。
5.Redis性能
Redis读的速度是110000次/s,写的速度是81000次/s 。
6.Redis的数据结构
redis提供五种数据类型:string,hash,list,set及zset(sorted set)。
7.Redis存储
存储文件格式
①全量数据:全量数据格式是把内存中的数据写入磁盘,便于下次读取文件进行加载;
②增量请求:增量请求文件是把内存中的数据序列化为操作请求,用于读取文件进行replay得到数据,序列化的操作包括SET、RPUSH、SADD、ZADD。
存储分类
redis的存储分为内存存储、磁盘存储和log文件三部分,配置文件中有三个参数对其进行配置。
8.Redis总结特点
①redis单个key存入512M内存大小;
②redis支持多种类型的数据结构;
③redis是单线程,原子性;
④redis可以持久化,因为使用了RDB和AOF机制;
⑤redis支持集群,支持库16个(0-15);
⑥redis可以做消息队列,比如聊天室等。
9.Redis优缺点
优点:
①丰富的数据结构;
②高速读写,使用自己实现的分离器,代码量短;
缺点:
①在持久化中,第一种方式为定时快照,每隔一段时间将整个数据库写到磁盘上,每次均是全部数据,代价很高;第二种方式为基于语句追加,追加的log可能过大,同时所有的操作均重新执行一遍,回复速度慢;
②耗内存,占用内存高。
10.Redis作者
redis 的作者,叫Salvatore Sanfilippo,GitHub网址为https://github.com/antirez。