标题:django 缓存 | 作者: catfish | 时间:2019年12月22日
暂无法显示图片

为什么要用缓存?

缓存可以减少网站的开销。如果得到一个结果之前需要大量的计算,则利用缓存可以减少计算的频率,来降低网站资源的消耗。

如何设置缓存?

您需要在settings.py文件中,指定缓存数据放在哪里。放的位置不同是能够影响缓存性能的。是的,某些缓存比其他类型更快。在这里只写推荐的数据库缓存,这也是最佳的缓存方式。

使用数据库缓存

首先你需要到到settings.py中指定数据库缓存。

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
        'LOCATION': 'my_cache_table',                               # 指定缓存表的表名
    }
}

然后创建数据库缓存表:

python3 manage.py createcachetable

如果查看创建过程中所使用的sql语句的话,你可以使用:

python3 manage.py createcachetable --dry-run

你样做你只会查看表的相关语句,并没有创建表。

使用Memcache缓存

除了数据库缓存外你还可以使用memcache缓存。首先需要安装memcache,这里以ubuntu为例:

$ apt-get install memcache

然后安装相关的python库:

$ sudo pip3 install python-memcached

然后配置settings.py文件:

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': '127.0.0.1:11211',
    }
}

缓存的方法和方式

上述二者选择其一配置然后就可以在项目中使用缓存了。

低级缓存

基本用法如下:

>>> from django.core.cache import cache
>>> a = cache.get('key', default="a")      # 得到缓存的值,如果没有返回a

>>> cache.set('key', 'value', 600)   # 设置缓存的值,且缓存时间十分钟

    # 如果缓存值是None则永久缓存,如果缓存值是0,则不缓存。

    # 第二次设置相同的值会覆盖第一次设置的值。

>>> cache.add('key', 'value', 600)   # 和set相同,不过不会第二次设置不会覆盖第一次设置。

>>> cache.get_or_set('key', 'value', 600)

>>> cache.get_many(list)      # 传入一个键列表,返回一个字典。

>>> cache.set_many(dict)      # 传入一个字典,设置多个值。

>>> cache.delete(key)         # 删除键。

>>> cache.delete_many(list)    # 传入一个键列表,删除上面的所有键。

>>> cache.clear()            # 删除上面的所有键。

>>> cache.touch(key, time)    # 为密匙更新时间。

总结

1,选择一种缓存方式,并在settings.py文件中配置

2,引入库,使用set和get方法进行缓存。

>>> 如果遇到了其他使用缓存的方式,我再补充。

我要评论

没有登录?请先登录后再评论

最新评论

暂无人评论,来抢个沙发吧!