作者处于学习阶段,刚刚完成redis的学习,作为学生,我会用更通俗的说法,来叙述自己对redis的了解。愿各位大佬看到有见解错误的地方和叙述不好的地方,能够帮忙纠正。来帮助大家更加深入的了解redis。
1.nosql的概念:
减少I/O的读操作,NoSQL(not only SQL不仅仅是数据库),指非关系型数据库。不依赖业务逻辑存储方式,只是简单的key-value存储方式。
① 不遵循SQL标准
② 不支持ACID(指数据库管理系统(DBMS)在写入或更新资料的过程中,为保证事务(transaction)是正确可靠的,所必须具备的四个特性:原子性(atomicity,或称不可分割性)、一致性(consistency)、隔离性(isolation,又称独立性)、持久性(durability)。)
③ 远超于SQL性能
2.NoSQL适用的场景
①、数据模型比较简单;
②、需要灵活性更强的IT系统;
③、对数据库性能要求较高;
④、不需要高度的数据一致性;
⑤、对于给定key,比较容易映射复杂值的环境。
3.常见的NoSQL
名称 | 优点 | 缺点 |
Memcache | 1.速度快 2.配置简单 3.稳定 | 1.数据都在内存中,一般不持久化 2.支持简单的key-value模式,支持类型只有字符串 |
MongoDB | 1.高性能、开源、模式自由的文档型数据库 2.数据都在内存中,也可将数据存到硬盘中 3.key-value模式,对value提供了丰富的查询功能 | 1.不支持事务。 2.占用空间过大 。 3.没有成熟的维护工具。 |
redis | 1.数据都在内存中,支持持久化 2.除了支持简单的key-value模式,还支持多种数据结构的存储,比如 list、set、hash、zset等。 | 1.Redis只能使用单线程,性能受限于CPU性能 2.短时间内大量增加数据,可能导致内存不够用 |