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的类型是字符串, 不能重复
image.png
值的类型有五种

  • 字符串string
  • 哈希hash
  • 列表list
  • 集合set
  • 有序集合zset