1.NoSQL
//来源:02
 NoSQL类型:键值、文档、图
 NoSQL特点:非结构化的、无关联的、非SQL、BASE(无法满足事务ACID)
 
2.认识Redis
//来源03
 基于内存的键值型NoSQL数据库。全称远程词典服务器。
2.1特征
(1)键值型,value支持多种数据结构
 (2)单线程,每个命令具有原子性
 (3)低延迟,速度快。(基于内存,IO多路复用、良好的编码)
 (4)支持数据持久化(定期写入磁盘)
 (5)支持主从集群、分片集群
3.数据类型
//来源07,[09,14]
 key一般是String类型,不过value的类型多。
 
3.1 String类型
3.1.1 类型
value是字符串,但value字符串格式分三种:String, int, float
 
3.1.2 String的常见命令

3.2 Key的层级格式
如何区分不同类型的key呢?允许多个单词用" : "隔开,形成层级结构。
 
 value中可以存放json格式的对象。
 
3.3 Hash类型
value是一个无序字典(类似java中的hashmap)。
 解决的问题:String将对象转为json字符串存储,不方便修改其中的字段。
 结构:Hash可以分字段存储value ( filed, name),可以针对单个字段做CRUD。
Hash类型的常见命令

3.4 List类型
类似Java的LinkedList结构,可以看做双向链表。支持正向检索、反向检索。
 特征:元素可以重复;有序;插入删除快;查询速度一般
 常见命令:
 
3.5 Set类型
特征:无序;元素不可重复;查找快;支持交集、并集、差集等功能。
 命令:
 
 用途:社交好友关系
3.6 SortedSet类型
有序的Set集合(类似Java中的TreeSet,但底层结构差别较大)
 SortedSet每个元素都有一个score属性,基于score属性对元素进行排序。
 底层实现:跳表(SkipList)+哈希表
 特性:可排序;不可重复;查询速度快
 用途:排行榜
 命令:
 
 注意:
 1.排名下标从0开始
 2.默认是升序从小到大排序,如果需要反过来,在命令中的“Z”的后面加上“REV”
 3.范围是左开右闭的



















