当前位置:  开发笔记 > 编程语言 > 正文

何时使用Redis代替MySQL用于PHP应用程序?

如何解决《何时使用Redis代替MySQL用于PHP应用程序?》经验,为你挑选了4个好方法。

我一直在看Redis.看起来很有趣.但从实际角度来看,在什么情况下使用Redis而不是MySQL?



1> Martin Wickm..:

忽略整个NoSQL与SQL争论,我认为最好的方法是将它们结合起来.换句话说,对于系统的某些部分(复杂的查找,事务)使用MySQL,对其他部分使用redis(性能,计数器等).

根据我的经验,与可伸缩性(许多用户......)相关的性能问题最终会迫使您添加某种缓存以从MySQL服务器中删除负载,而redis/memcached非常擅长.



2> Thomas..:

我不是Redis专家,但从我收集的内容来看,两者都非常不同.Redis:

不是关系数据库(没有奇特的数据组织)

将所有内容存储在内存中(更快,更少的空间,在发生崩溃时可能更不安全)

不太广泛地部署在各种webhosts上(如果你没有自己托管)

我想你可能想要使用Redis,因为你有一小部分数据不需要MySQL提供的关系结构,并且需要快速访问.例如,这可以是动态web界面中的会话数据,其需要经常且快速地访问.

Redis还可以用作某些MySQL数据的缓存,这些数据将被频繁访问(即:在用户登录时加载它).

我认为你问的问题是错误的,你应该问自己哪一个更适合应用程序,而不是哪个应用程序适合系统;)



3> Will..:

MySQL是一个关系数据存储.如果配置(例如使用innodb表),MySQL是一个提供ACID事务的可靠数据存储.

Redis是一个NoSQL数据库.它更快(如果使用正确),因为它可靠交换速度(很少使用fsync运行,因为这会极大地损害性能)和事务(可以近似 - 缓慢 - 使用SETNX).

Redis有一些非常简洁的功能,如集合,列表和排序列表.

Redis上的这些幻灯片列出了统计信息收集和会话管理的示例.还有一个用redis编写的twitter 克隆作为例子,但这并不意味着twitter使用redis(twitter使用带有大量memcache缓存的MySQL).



4> 小智..:

MySql -

1)结构化数据2)ACID 3)重交易和查找.

Redis -

1)非结构化数据2)简单快速的查找.例如 - 会话的标记3)将其用于缓存层.

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有