Mysql和Resdis是个经典的问题了,这次来表达一下我对其的理解。
Redis是属于内存数据库,所有的数据都储存在内存中,所以执行增删改查等操作运行速度比Mysql相比快速很多,而且支持的数据类型也较全面,支持字符串,列表,hash,集合等。但是由于数据是保存在内存中,所以Redis不具备自动容错和恢复功能。该数据库在重启后会丢失数据,然而Redis有rdb持久化策略,储存数据后会自动生成rdb.dump文件,里面存放着每个数据库中的内容,在重启后会自动导入内容。
Mysql是属于关系型数据库,所有的数据都储存在磁盘之中。该数据库发展时间长所以具备强大的功能,可以兼容不同的系统,方便操作转移而且支持大部分sql查询语句,有着灵活的权限和口令。并且开源免费。但是在进行检索的时候就是涉及到IO操作,使用IO调度器进行检索,该调度器也被称为电梯,必须一层一层的执行直到底部才能返回,从而大大的降低了运行速度。
综合来讲这两种数据库的优势也是对方的缺点,所以在开发的时候会一块使用Mysql和Redis数据库,互相弥补对方的缺点,当用户请求的的时候,会先对Redis数据库进行检索,如果为找的目标,才会对Mysql进行检索,很大程度的提高了检索速度。