在了解redis入门之前,我们先了解下NOSQL!
什么是NOSQL
NoSQL=NotOnlySQL,泛指非关系型的数据库,用于超大规模数据的存储。如用户的个人信息、社交网络、地理位置等存储不需要一个固定的格式,不需要多余的操作就可以横向扩展的!MAP使用键值对来控制!为什么要用NOSQL
随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,出现了很多难以克服的问题。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,特别是大数据应用难题。NOSQL特点--解耦!
1.方便扩展(数据之间没有关系,很好扩展)
2.大数据量高性能(redis一秒写8万次,读取11万,nosql的缓存记录级别是一种细粒度的缓存,性能会比较高)
3.数据类型是多样性的(不需要事先设计数据库!随取随用!)
4.传统RDBMS和NOSQL:
RDBME
NOSQL
-结构化组织
-sql
-数据和关系都存在单独的表中
-数据操作、数据定义语言
-严格的一致性
-基础的事务
-......
-不仅仅是数据
-没有固定的查询语言
-键值对存储,列存储,文档存储,图形数据库(社交关系)
-最终一致性
-CAP定理和base(异地多活)
-高性能、高可用、高扩展
-......
真正在公司中的实践:NOSQL+RDBMS一起才是最强的!
NOSQL四大分类
1.KV键值对--redis2.文档型数据库(bson格式和json一样)--MangoDB、CouchDB3.列存储数据库--HBase4.图关系数据库--Neo4j、InfoGridRedis入门
redis是什么?
Redis(RemoteDictionaryServer),即远程字典服务,是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。免费和开源,是当下最热门的NOSQL技术之一!
redis能干嘛?
1.内存存储、持久化,内存中是断电即失,所以持久化很重要(rdb、aof)2.效率高,可以用于高速缓存3.发布订阅系统4.地图信息分析5.计时器、计数器(浏览量)......有什么特性?
1.多样的数据类型2.持久化3.集群4.事务......16个数据库
Redis默认有16个数据库,默认使用的是第0个,可以使用select进行切换数据库。
redis是单线程的!
redis是基于内存操作,CPU不是redis的性能瓶颈,redis的瓶颈是根据机器的内存和网络带宽。redis是C语言写的,官方提供的数据是10万+QPS,完全不比同样是使用key-value的Menecache差!核心
redis是将所有的数据放在内存中的,所以使用单线程去操作效率是最高的,多线程(CPU上下文会切换:耗时!),对于内存系统来说,如果没有上下文切换效率就是最高的!多次读写都是在一个CPU上的,在内存情况下,就是最佳的方案!基础命令
flushdb#清除当前数据库flushall#清除所有数据库keys*#查看当前库所有keyselect3#切换库set#设置键值对get#获取键对应的值####后面如果遇到不懂的命令,可以到