Mysql和redis之间的选择

发布时间:2018-08-29 浏览次数:3674

Mysqlredis的选择

Mysql数据库

类型:关系型数据库

持久化方式:

无论数据还是索引都存放在硬盘中。到要使用的时候才交换到内存中。能够处理远超过内存总量的数据。

效率:

MySQL存放在硬盘,在速度上肯定没有Redis快,但是存放的数据量要多的多

功能与应用

功能强大传统的关系型数据库,应用非常广泛,基本可以满足所有存储数据的需求,满足所有应用程序等,例如论坛,个人博客,门户咨询等web网站以及OA等其他应用。

优势:

1. 它使用的核心线程是完全多线程,支持多处理器。
2. 有多种列类型:1234、和8字节长度自有符号/无符号整数、FLOATDOUBLECHARVARCHARTEXTBLOBDATETIMEDATETIMETIMESTAMPYEAR、和ENUM类型。
3. 它通过一个高度优化的类库实现SQL函数库并像他们能达到的一样快速,通常在查询初始化后不该有任何内存分配。没有内存漏洞。
4. 全面支持SQLGROUP BYORDER BY子句,支持聚合函数(COUNT()COUNT(DISTINCT)AVG()STD()SUM()MAX()MIN())。你可以在同一查询中混来自不同数据库的表。
5. 支持ANSI SQLLEFT 0UTER JOINODBC
6. 所有列都有缺省值。你可以用INSERT插入一个表列的子集,那些没用明确给定值的列设置为他们的决省值。
7MySQL可以工作在不同的平台上。支持CC++、JavaPerlPHPPythonTCL API

Redis数据库

类型:非关系型数据库

持久化方式:

redis所有数据都是放在内存中的,持久化是使用RDB方式或者aof方式

效率:

Redis的数据存放在内存,所以速度快但是会受到内存空间限制

功能与应用

Redis是一个K-V数据库,同时还支持List/Hash/Set/Sorted Set等几个简单数据结构,它没有二维表的概念,不能做非常复杂的逻辑查询,所以只能以这些数据结构为基础实现功能通常用来辅助关系型数据库(如mysql)使网站更快速。因此它只能满足一些特定应用场景。例如 :缓存,计数器,排行榜,活动促销,投票排序等

优势:

Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value,并提供多种语言的API。

Redis 与其他 key - value 缓存产品有以下特点:

· Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。

· Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

· Redis支持数据的备份,即master-slave模式的数据备份。

· 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。

· 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。

· 原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。

· 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

· Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,应为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。  

总结:

建站时,应首先选择关系型数据库(如mysql)做为基础数据库,如果想让网站更快速,再选择Redis来配合使用。一般Redis不单独作为建站需要,通常用来配合关系型数据库(mysql)来满足特定需求。

Redis与mysql数据同步:

读:读redis->如没有,读mysql->把mysql数据写回redis

写:写mysql->成功,写redis



以上文章是否对您有帮助?
  • 联系销售
    很高兴为您服务
    尊敬的客户您好,欢迎您来到快云,成为我们的用户。
    开始售前咨询
    在线联系售前顾问,一对一解答
    请添加我的企业微信
    为您提供1V1产品咨询,上云方案定制服务
    企业微信
  • 请添加微信公众号
    扫码登录,业务提醒
    工单申报,优惠活动
    关注公众号