2 min read

如何榨干阿里云 1核1G 的服务器

阿里云最便宜的服务器 1核1G 大多是拿来科学上网用的。

跑个数据库驱动的网站,撑不了多少量。

不过对于每个月还没收入,一天维持 1000 UV 上下的小站长来说。如何用好手上的资源,还是挺重要的。

tenor-3409218540.gif

虽然,能用钱解决的问题都不是问题。但是,关键目前还没钱。

扯淡完毕,回到正题。
本周主要说 python-diskcache 一个纯 Python 的缓存系统。
官方也给出了 redis, memcached, locmem, diskcache 性能对比

GET

core-p1-get.png

SET

core-p1-set.png

从官方给出的 benchmark 来看 diskcache 读取性能很好, 写入性能有点差(是很差)。
我认为,页面做静态化主要的用到还是读取。 写入差点问题不会很大。

Pyhton-DiskCache 可以无缝对接 Django, 只要加上如下配置到你的 django settings.py 中就可以了。

CACHES = {
    'default': {
        'BACKEND': 'diskcache.DjangoCache',
        'LOCATION': '/path/to/cache/directory',
        'SHARDS': 4,
        'DATABASE_TIMEOUT': 1.0,
        'OPTIONS': {
            'size_limit': 2 ** 32  # 4 gigabytes
        },
    },
}

接着,可以配合 django-cache-machine 一起使用

  • 安装:
pip install django-cache-machine
  • 配置:
from django.db import models

from caching.base import CachingManager, CachingMixin

class Zomg(CachingMixin, models.Model):
    val = models.IntegerField()

    objects = CachingManager()

这样基本上可以做到无缝升级。

写在最后:

有足够的预算还是用 redis 或者 memcached。
用 diskcache 就一个原因:穷