您如何在 Memcached、Redis 和 Varnish 之间进行选择?
Posted
技术标签:
【中文标题】您如何在 Memcached、Redis 和 Varnish 之间进行选择?【英文标题】:How do you choose between Memcached, Redis and Varnish? 【发布时间】:2014-04-02 19:53:11 【问题描述】:我对 Memcached、Redis 和 Varnish 真的很困惑。我知道它们用于缓存,但我不知道它们有多大帮助,以及您如何知道使用哪一个。
最后,我想知道您会为包含用户上传的图片和视频的网站使用什么?如果有帮助,我正在使用 Django 框架。
【问题讨论】:
***.com/questions/4490140/… 【参考方案1】:Varnish 是一个奇怪的例子,它是一个在真实网络服务器(apache、nginx 等)前面作为反向代理运行的服务器,它单独存储服务器的响应,并可以决定为它提供服务后续请求而不将请求传递给后端(网络服务器),所以它就像 html 缓存一样。
Memcached 和 redis 实际上是数据存储服务器,特别是键值存储服务器。就 python 而言,你可以说它是一个巨大的“字典”,你用一个键设置值并通过键检索它们。两者差别不大,你可以谷歌一下 memcached vs redis。
【讨论】:
【参考方案2】:我正在使用 Django 和 memcached,所以我知道如何使用它。 我有一些几乎从不改变的数据,需要很短的时间(几秒钟)才能加载。 缓存它们会将秒变为几分之一秒,因此加载时间减少了 10 倍。
使用memcached很简单:
为您的操作系统安装并运行 memcached。
配置 Django 以将其用作缓存机制。
在settings.py
或等效设置BACKEND
选项中:'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache'
从 memcached 存储和检索数据:
from django.core.cache import cache
cache.set('myData',myData)
# ... in another place:
myData = cache.get('myData')
if not myData:
# re-calculate myData in case of a 'cache miss', then re-caching it.
# myData = <calculations>
cache.set('myData',myData)
【讨论】:
以上是关于您如何在 Memcached、Redis 和 Varnish 之间进行选择?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ElasticBeanstalk 上安装和配置 Redis