Redis是什么?
从最初开始学习数据库以来,我们就知道,数据库是用来存储和管理数据的,传统的数据库设计一般都会遵循以下几个规则,一是要将数据保存到磁盘中,二是要遵循数据库三大范式,三则是要尽量遵循事务的ACID原则。
但是,不知道从什么时候开始,Redis这个不墨守成规的家伙横空出世,它既不将数据存入磁盘,也不遵循事务的ACID原则,甚至不支持完整的SQL语言,是一个完完全全的“不听话的孩子”。但是,正是这个“不听话的孩子”,在其他数据库缺失的领域发挥出了它独有的作用。
根据定义来说,Redis是一个基于内存^[1]^ 的键值对数据库,由于它基于内存存储,采用独有的单线程多路复用模式^[2]^,且采用了高效的数据结构,使得它的运行速度非常之快。Redis的独特结构和优点在其他数据库所不能到达的地方发光发热,比如缓存、分布式锁、计数器、消息队列、实时系统。
但是万事万物都有它自己的优缺点,Redis也存在一些问题,比如由于Redis对于高性能的追求,导致它对一致性的要求较低,在某些情况下,可能会牺牲一致性换取终极的性能。单打独斗是不能长久的,所以Redis也提供了集群模式和和主从模式,进一步提高了系统的稳定性,提高了并发效率。
- 数据库的三大范式
- 事务的ACID原则
- redis的单线程模式
- Redis的数据结构
- Redis的具体功能实现
- Redis需要牺牲一致性换取性能的场景
- Redis的集群模式
- Redis的主从模式
- Redis使用过程中的常见问题