2014-03-01 27 views
12

我对Memcached,Redis和Varnish非常困惑。我知道它们被用于缓存,但我不知道它们有多少帮助,以及如何知道使用哪一个。你如何选择Memcached,Redis和Varnish?

最后,我想知道你会用什么网站用户上传的图片和视频?如果它有帮助我使用Django框架。

+0

http://stackoverflow.com/questions/4490140/memcached-vs-清漆换加速部分 - 三层的Web架构 –

回答

13

Varnish是一个奇怪的问题,它是一个服务器,在真正的网络服务器(apache,nginx等)之前作为反向代理运行,它将服务器的响应分开存储并可以决定为它服务一个后续的请求,而不将请求传递给后端(网络服务器),所以简单就像HTML缓存。

Memcached和redis实际上是数据存储服务器,特别是键值存储服务器。在python方面,你可以说它是一个巨大的'词典',你用一个键设置值并通过键检索它们。他们之间几乎没有什么区别,你可以简单的谷歌memcached与redis。

4

我正在使用Django和memcached,所以我可以告诉如何使用那个。
我有一些数据,几乎没有变化,需要少量的时间(几秒钟)加载。
缓存它们会变成秒进秒的小数部分,所以加载时间由10

使用memcached的减少系数是非常简单的:

  1. 安装和运行memcached您的操作系统。

  2. 配置Django使用它作为缓存机制。
    settings.py或等同设置BACKEND选项:
    'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache'

  3. 商店和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)