Redis6--概述
Redis6总纲
一、NoSQL概述
1、什么是NoSQL
(1)NoSQL = Not Only SQL(不仅仅是SQL)
(2)关系型数据库:表格,行,列
(3)随着web2.0互联网的诞生!传统的关系型数据库很难对付web2.0时代,尤其是超大规模的高并发的社区!暴露出来很多难以克服的问题,NoSQL在当今大数据环境下发展的十分迅速,Redis是发展最快的,而且是我们当下必须要掌握的一个技术
(4)很多的数据类型用户的个人信息,社交网络,地理位置。这些数据类型的存储不需要一个固定的格式、不需要多余的操作就可以横向扩展的! Map<String,Object>使用键值对来控制
2、NoSQL的特点
(1)方便扩展(数据之间没有关系,很好扩展!)
(2)大数据量高性能(Redis一秒写8万次,读取11万,NoSQL的缓存记录级,是一种细粒度的缓存,性能会比较高!)
(3)数据类型是多样型的(不需要事先设计数据库!随取随用!如果是数据量十分大的表,很多人就无法设计了! )
image.png
真正在公司中的实践:NoSQL + RDBMS一起使用才是最强的,阿里巴巴的架构演进
3、阿里巴巴的架构演进
image.png二、NoSQL四大分类
1、键值数据库
相关产品:Redis、Riak、SimpleDB、Chordless、Scalaris、Memcached
应用:内容缓存
优点:扩展性好、灵活性好、大量写操作时性能高
缺点:无法存储结构化信息、条件查询效率较低
使用者:百度云(Redis)、GitHub(Riak)、BestBuy(Riak)、Twitter(Ridis和Memcached)
2、列族数据库
相关产品:BigTable、HBase、Cassandra、HadoopDB、GreenPlum、PNUTS
应用:分布式数据存储与管理
优点:查找速度快、可扩展性强、容易进行分布式扩展、复杂性低
使用者:Ebay(Cassandra)、Instagram(Cassandra)、NASA(Cassandra)、Facebook(HBase)
3、文档数据库
相关产品:MongoDB、CouchDB、ThruDB、CloudKit、Perservere、Jackrabbit
应用:存储、索引并管理面向文档的数据或者类似的半结构化数据
优点:性能好、灵活性高、复杂性低、数据结构灵活
缺点:缺乏统一的查询语言
使用者:百度云数据库(MongoDB)、SAP(MongoDB)
4、图形数据库
相关产品:Neo4J、OrientDB、InfoGrid、GraphDB
应用:大量复杂、互连接、低结构化的图结构场合,如社交网络、推荐系统等
优点:灵活性高、支持复杂的图形算法、可用于构建复杂的关系图谱
缺点:复杂性高、只能支持一定的数据规模
使用者:Adobe(Neo4J)、Cisco(Neo4J)、T-Mobile(Neo4J)
三、Redis入门
1、是什么
(1)Redis ( Remote Dictionary Server ),即远程字典服务!
(2)是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库
(3)并提供多种语言的API。
2、能做什么
(1)内存存储、持久化,内存中是断电即失、所以说持久化很重要( rdb、aof )
(2)效率高,可以用于高速缓存
(3)发布订阅系统
(4)地图信息分析
(5)计时器、计数器(浏览量!)
(6)......
3、特性
(1)多样的数据类型
(2)持久化
(3)集群
(4)事务
4、基础知识 ★
(1)切换数据库 16个 [0-15]
127.0.0.1:6379[15]> select 7
OK
127.0.0.1:6379[7]>
(2)查看数据库大小
127.0.0.1:6379[7]> DBSIZE
(integer) 0
127.0.0.1:6379[7]> set name mykk
OK
127.0.0.1:6379[7]> DBSIZE
(integer) 1
(3)查看所有 key
127.0.0.1:6379[7]> keys *
1) "name"
(4)清空当前数据库:flushdb
(5)清空全部数据库
127.0.0.1:6379[7]> FLUSHALL
OK
127.0.0.1:6379[7]> keys *
exists key判断某个key是否存在
type key 查看你的key是什么类型
del key 删除指定的key数据
unlink key 根据value选择非阻塞删除
仅将keys从keyspace元数据中删除,真正的删除会在后续异步操作。
expire key 10 10秒钟:为给定的key设置过期时间
ttl key 查看还有多少秒过期,-1表示永不过期,-2表示已过期
5、Redis 是单线程 + 多路IO复用 ★
image.pngimage.png