Redis基础
SQL和NoSQL的区别
特性 | SQL | NoSQL |
---|---|---|
数据结构 | 结构化数据(表) | 非结构化数据(键值对,文档,图,列簇) |
数据关联 | 关联的(外键关联) | 无关联的(需要程序员定义逻辑关联) |
查询方式 | SQL查询(统一的查询语句) | 非SQL(不同数据库有不同的查询语法) |
事务特性 | ACID(支持原子性、一致性、隔离性和持久性) | BASE(只支持基础的特性) |
存储方式 | 磁盘(磁盘性能受限) | 内存(性能很高) |
拓展性 | 垂直(存储本机,主从数据一致) | 水平(数据拆分,分布式存储) |
使用场景 | 数据结构固定,安全性要求高 | 数据结构多样,性能要求高 |
数据库代表 | Mysql,Oracle | Redis(键值)、MongDB(文档)、Neo4j(图)、列簇(HBase) |
Redis特性
- 键值型数据库,value支持多种数据结构
- 单线程,每个命令具备原子性(网络编程支持多线程,核心命令单线程)
- 低延迟,速度快(主要是基于内存,此外还有IO服用,优秀的编码)
- 支持数据持久化(内存断电丢失数据)
- 支持主从集群(从节点备份主节点的数据,读写分离,提高效率)
- 支持分片集群(支持数据拆分,1TB拆分到不同机器存储)
- 支持多语言客户端(JAVA,PYTHON,C++等)
Redis数据结构
基本数据类型:
- String
- Hash
- List
- Set
- SortedSet
特殊数据类型:
- BitMap
- GEO
- HyperLog