做开发的,多多少少都要了解下相关的理论知识点。虽然**我们都是要投入到实战工作之中。但是,没有足够过硬的理论知识做支撑,又怎么能够更好的去完成工作呢?
今天,千锋重庆Java培训的老师就带大了解Redis的相关知识点。
什么是NoSql
为了解决高并发、高可扩展、高可用、大数据存储问题而产生的数据库解决方案,就是NoSql数据库。
NoSQL,泛指非关系型的数据库,NoSQL即Not-Only SQL,它可以作为关系型数据库的良好补充。但是它不能替代关系型数据库,而且它是存储在内存中,所以它的访问速度很快。
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能**的Key-Value DB。Redis的主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。
总结来说,使用Redis的好处如下:
速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)
支持丰富数据类型,支持string,hash,list,set,zset
支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行
丰富的特性,可用于缓存,消息,计数,按key设置过期时间,过期后将会自动删除
单线程,预防多线程的竞态问题
2.Nosql的数据库分类
键值(Key-Value)存储数据库
相关产品: Tokyo Cabinet/Tyrant、Redis、Voldemort、Berkeley DB
典型应用: 内容缓存,主要用于处理大量数据的高访问负载。
数据模型: 一系列键值对
优势: 快速查询
劣势: 存储的数据缺少结构化
2.列存储数据库
相关产品:Cassandra, HBase, Riak
典型应用:分布式的文件系统
数据模型:以列簇式存储,将同一列数据存在文件系统中
优势:查找速度快,可扩展性强,更容易进行分布式扩展
劣势:功能相对局限
3、文档型数据库
相关产品:CouchDB、MongoDB
典型应用:Web应用(与Key-Value类似,Value是结构化的)
数据模型: 一系列键值对
优势:数据结构要求不严格
劣势: 查询性能不高,而且缺乏统一的查询语法
4.图形(Graph)数据库
相关数据库:Neo4J、InfoGrid、Infinite Graph
典型应用:社交网络
数据模型:图结构
优势:利用图结构相关算法。
劣势:需要对整个图做计算才能得出结果,不容易做分布式的集群方案。
当然,Redis的相关知识点还有很多,更加要求大家去深入了解。 |