第一章 NOSQL概述
1.1 什么是NOSQL
NoSQL(NoSQL = Not Only SQL),意即“不仅仅是SQL”,是一项全新的数据库理念,泛指非关系型的数据库。
非关系型数据库和关系型数据库的区别:
1.2 为什么需要NOSQL
(1)易扩展,数据之间没有关系的。
(2)大数据量,高性能。高性能读写非常灵活的。
(3)灵活的数据模型。不需要事先对存储数据建立字段。
(4)高可用。
简单概括:用于高并发读写、海量数据的高效率存储和访问、高可扩展性和高可用性。
1.3 NOSQL的主流产品和分类及优缺点
主流产品:Redis(广泛应用),CouchDB,mongoDB,Cassandra等。Nosql中比较火的三个数据库Redis、Memchache、MongoDb。
四大分类及优缺点:
(1)键值对存储(key-value):Redis键值对存储,优势:快速查询,缺点:存储数据缺少结构化。
(2)列存储:Hbase,优势:快速查询,扩展性强。缺点:功能相对于局限。
(3)文档数据库存储:MongoDB,早起应用多。优势:要求不特别的严格。缺点:查询性不高,缺少统一查询语法。
(4)图形数据库存储:应用于社交网络,优势:利用图结构相关算法。缺点:需要整个图计算才得出结果,不容易做分布式集群方案。
第二章 Redis概述
2.1 什么是Redis
Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库,官方提供测试数据,50个并发执行100000个请求,读的速度是110000次/s,写的速度是81000次/s ,且Redis通过提供多种键值数据类型来适应不同场景下的存储需求.
2.2 Redis的应用场景
三级缓存:1. 从互联网上直接获取数据 2. 将数据缓存到内存中 3. 将内存中的数据存储到硬盘中
- 缓存 (数据查询、短连接、新闻内容、商品内容等等)
- 聊天室的在线好友列表
- 任务队列。(秒杀、抢购、12306等等)list数据类型的使用
- 网站访问统计 set数据类型的使用
- 数据过期处理(可以精确到毫秒)
- 分布式集群架构中的session分离
第3章 Redis的数据类型
3.1 Redis的5中数据类型
redis是一种高级的key-value的存储系统,其中value支持五种数据类型:
-
字符串(String)
-
哈希(hash)
-
字符串列表(list)
-
字符串集合(set)
-
有序字符串集合(sorted set)
关于key的定义,注意如下几点:
-
key不要太长,最好不要超过1024个字节,这不仅会消耗内存还会降低查找效率
-
key不要太短,如果太短会降低key的可读性
-
在项目中,key最好有一个统一的命名规范:"项目名_模块名_功能名" "travel_user_name"
3.2 字符串类型String的概述
3.2.1 字符串类型string概述
字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型存入和获取的数据相同。在Redis中字符串类型的Value最多可以容纳的数据长度是512M。
3.2.2 字符串类型string常用命令
- set key value 设定key持有指定的字符串value,如果该key存在则进行覆盖操作。总是返回”OK”
127.0.0.1:6379> set company "hello"
OK
127.0.0.1:6379>
<