redis是一个键值型数据库。
是一种nosql数据库,非关系型数据库。
sql数据库
1.字段类型是固定的。
2.表的结构是固定的。表数据量特别大的时候,去修改表结构会出现问题。也会导致业务逻辑的修改。
3.每个字段有一定的约束,比如唯一约束,主键约束,无符号(unsigned,不允许是负数)等。
4.表与表之间是有关系的。例如:外键
5.有事务,安全性高,优先选择关系型数据库。
6.数据存储在磁盘。
使用场景:数据结构固定,相关业务对数据的安全性和一致性要求较高。
nosql数据库
1.Redis键值型数据库key-value形式。
2.图数据库Graph neo4j,节点与关系的形式。
3.文档型数据库,MongoDB。
4.elasticsearch,一个分布式文档的非关系型数据库。
它们的数据结构没有严格的要求,相对比较松散。允许修改数据结构,影响较小。无法满足事务的ACID特性,安全性不高。只能遵循BASE理论。
数据存储在内存,性能高。
使用场景:数据结构不固定,对一致性和安全性要求不高,对性能有要求。
redis的特征
1.键值key-value型,value支持多种不同的数据结构,功能丰富。
2.单线程,每个命令具备原子性。
3.低延迟,速度快。基于内存,IO多路复用,良好的编码基于c语言。
4.支持数据持久化,确保数据安全性。
5.支持主从集群、分片集群。
6.支持多语言客户端。java,python,c都能操作redis。