一.认识NoSQL
1.SQL 关系型数据库
- 结构化: 定义主键,无符号型数据等
- 关联的:结构化表和表之间的关系通过外键进行关联,节省存储空间
- SQL查询:语法固定
SELECT id,name,age FROM tb_user WHERE id=1
ACID
2.NoSQL 非关系型数据库
- Redis
get user:1
- MongoDB
db.users.find({_id:1})
3.总结
4.NoSQL和SQL数据库的比较
- 适用场景不同:sql数据库适用于关系特别复杂的数据查询场景,noSQL反之
- 事务 特性的支持:sql对事务的支持非常完善,而noSQL基本不支持事务
- 两者在不断地取长补短,呈现融合趋势
二、认识redis
Redis全称Remote Dictionary Server,远程词典服务器,是一个基于内存的键值型NoSQL数据库,基于c语言编写的
1.特征
- 键值型,value支持多种不同的数据结构,功能丰富如list,set,zset,hash
- 单线程,每个命令具备原子性,核心命令执行(redis6.0多线程?仅仅对于网络请求处理方面)
- 低延迟速度快(基于内存,IO多路复用,良好的编码)
- 支持数据持久化(考虑到断电情况内存消失,定期的将数据从内存存储到磁盘)
- 支持主从集群,分片集群
- 支持多语言客户端
- 支持数据的备份,即master-slave模式的数据备份