1 nosql的概念
NoSQL: 泛指非关系型数据库, 如Redis, Mongodb这些新出现的数据库
它们不支持SQL语法
存储的数据都是Key-Value形式
NoSQL的世界没有一种通用的语言,
每种NoSQL数据库都有自己的api和语法, 以及擅长的业务场景
2 NoSQL和SQL数据库的比较
(1) 适用场景不同
SQL数据库适合用于关系特别复杂的数据查询场景
NoSQL反之
(2) 事务特性的支持
SQL对事务的支持非常完善
NoSQL基本不支持事务
两者可以取长补短, 相互融合
3 Redis简介
Redis是一个开源的使用C语言开发的 支持网络, 支持数据的持久化的数据库, 并提供多种语言的API
它不仅仅支持简单的key-value类型的数据, 同时还提供list, set, zset, hash等数据结构的存储
支持数据的备份, 即master-slave(主从)模式的数据备份
4 Redis优势
- 性能极高
Redis读的速度是110000次/s, 写的速度是81000次/s
因为它的数据存放在内存中, 而MySQL的数据是在硬盘中
- 支持string,hash,list,set,zset五种数据类型
- 可以对key设置过期时间
- Redis中的每个语句都是原子的,但它的事务只是简单的批量操作,失败也不会回滚
5 Redis应用场景
用来做缓存(因为redis中的所有数据放在内存)
在某些特定应用场景下替代传统数据库(比如社交类的应用)
session共享, 购物车
6 Redis数据结构
redis是key-value型数据结构
key的类型是字符串, 不能重复
值的类型有五种
- 字符串string
- 哈希hash
- 列表list
- 集合set
- 有序集合zset