在说Redis之前,想先说一下NoSQL。在最早的单机时代,随着数据的增加一台机器可能放不下了。同时索引占用的内存空间也会越来越大。对请求的读写操作影响很大。于是就在数据库之前增加了一层保护层—缓存。另外由于关系型数据库MySQL、Oracle等在某些场景下读写效率较差,灵活性较低,I/O瓶颈限制。使得NoSQL应用的越来越广泛。
NoSQL,NotOnlySQL,也就是我们所说的非关系型数据库。常用的有Redis、Memcached、MongoDB等。
NOSQL
NoSQL数据库具有强大的读写性能,主要原因还是因为它的无关系性,数据结构相对简单。比如MySQL这样的关系型数据库我们需要实现建立好表结构,如果需要增加字段还需要通过alerttable来进行新增。但是非关系型数据库就没有这么麻烦。我们可以随时自定义数据格式。
常用数据库区别如下(来源自网络)
数据库比较
关系型数据库
结构化查询语言(SQL语句)严格的一致性基础事物
非关系型数据库
没有特定的查询语言有K-V存储,列存储,文档存储,图形数据库最终一致性非结构化和不可预知的数据高性能,高可用和伸缩性CAP原则,指的是在一个分布式系统中,Consistency(一致性)、Availability(可用性)、Partitiontolerance(分区容错性)
NoSQL四大分类
KV键值对,如Redis。用于内容缓存,主要用于处理大数据的高访问负载,也用于一些日志系统等.列存储数据库,如HBase。分布式的文件系统。文档性数据库,如MongoDB。主要用于WEB应用。也是k-v结构的。图形数据库,如Neo4J。主要用于社交网络,推荐系统等.
Redis
Redis:RemoteDictionaryServer(远程字典服务器)。
是一个用C语言编写的,开源的,高性能的(K/V)分布式内存数据库。
特点:
支持数据的持久化支持丰富的数据类型,String、List、Hash、Set、Zset支持数据备份,即master-slave单线程且支持事物
应用场景:
由于可以持久化,因此可以用来存储数据。消息队列系统社交关系(如,共同