MySQL的优缺点
优点:
体积小、速度快、总体拥有成本低,开源,提供的接口支持多种语言连接操作
MySQL 的核心程序采用完全的多线程编程。线程是轻量级的进程,它可以灵活地为用户提供服务,而不过多的系统资源。用多线程和C语言实现的MySQL ,充分利用CPU资源
有一个非常灵活而且安全的权限和口令系统。当客户与MySQL 服务器连接时,他们之间所有的口令传送被加密,而且MySQL 支持主机认证
支持大型的数据库, 可以方便地支持上千万条记录的数据库。作为一个开放源代码的数据库,可以针对不同的应用进行相应的修改
支持多种操作系统,如Linux、Windows、AIX、FreeBSD、HP-UX、MacOS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris等
提供多语言支持,常见的编码如GB2312、BIG5、UTF8
缺点:
不支持备份
不支持自定义数据类型
对存储过程和触发器支持不够友好
MySQL最大的缺点是其安全系统,主要是复杂而非标准,另外只有到调用mysqladmin来重读用户权限时才发生改变
Redis的优缺点
优点:
支持多种数据类型 例如set、zset、list、hash、string这五种数据类型,操作方便
性能很好,基于纯内存操作,所以读写性能很好,可以达到10w/s的频率
支持数据持久化,便于数据备份、恢复,支持简单的事务,操作满足原子性
支持主从复制,实现读写分离,分担读的压力
可以设置过期时间,过期自动删除,也可以做持久化
缺点:
数据存储在内存,主机断电数据就会丢失
存储容量受到物理内存的限制,只能用于小数据量的高性能操作
用于缓存时,容易出现’缓存雪崩‘,’缓存击穿‘、‘缓存穿透’等问题
修改配置文件,进行重启,将硬盘中的数据加载进内存,时间比较久。在这个过程中,redis不能提供服务
两者区别
类型上:MySQL是关系型数据库,Redis是非关系型(缓存)数据库
需求上:MySQL和Redis因为需求的不同,一般都是配合使用
作用上:MySQL用于持久化的存储数据到硬盘,功能强大,但是速度较慢
Redis用于存储使用较为频繁的数据到缓存中,读取速度快
数据存放位置 :MySQL数据放在磁盘,Redis数据放在内存
应用场景:MySQL和Redis都需要根据具体业务场景去选型
数据类型:
MySQL:字符串、列表、集合
Redis:String、Hash、List、Set、Zset