Maison > développement back-end > tutoriel php > mysql的MEMORY引擎为什么应用没有redis的应用广泛?

mysql的MEMORY引擎为什么应用没有redis的应用广泛?

WBOY
Libérer: 2016-09-02 08:57:05
original
1120 Les gens l'ont consulté

我看很多人宁愿用redis存储数据的json也不会用mysql的MEMORY引擎,请问是这个引擎性能差还是什么原因吗?我观察过国内一些开源项目也基本上没有用到过这个引擎,这是为什么呐?

回复内容:

我看很多人宁愿用redis存储数据的json也不会用mysql的MEMORY引擎,请问是这个引擎性能差还是什么原因吗?我观察过国内一些开源项目也基本上没有用到过这个引擎,这是为什么呐?

  1. 很多时间存的数据格式比较复杂,KV方式然后存JSON格式更方便,容易解析

  2. 可靠性方面redis好一些 -- MySQL的Memory表掉电后会丢数据,redis好一些

首先:redis的速度比mysql快好几个数量级。
所以:
1.数据量不太大 && 数据量经常访问 放到redis里更好。 这里的数据量大小可以参考redis服务器内存的大小。如果数据量小于redis服务器内存大小的话,就是可以考虑放入redis的。

2.redis访问比mysql更简单。

先了解一下 MySQL 的 Memory engine 吧

<code>http://dev.mysql.com/doc/refman/5.7/en/memory-storage-engine.html
</code>
Copier après la connexion

看看有多少 Unsupport 的。

回到跟 Redis 的比较,就扯三点吧

  1. Mysql 的 Memory engine 不支持 expire_date,我得手动删吧?

  2. 存储数据前,我得建表吧,如果我的数据不是行列的,就是无序的呢?

  3. 你返回给前端的是 JSON 字符串,还是你从数据库取出来序列化的 Model 类呢?那我为什么不直接从 Redis 里面取个 JSON 字符串出来直接返回呢。

当然以上 Mysql 的 Memory engine 也可以办到,但是痛苦指数就上升了很多,说明它不是很适合以上场景,总不能用剪刀去砍木头吧?虽然也砍得下来。

至于更深层次的原子性之类的比较,0 - 0我觉得还没到讨论这个东西出场的份儿,因为你会跟苦瓜和苹果比甜度?

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal