Django 使用memcache缓存
django 使用memcache分布式缓存(官方推荐的一款分布式缓存系统)
五一节快乐~,每天都要进步一点点
之前的博客项目使用的是redis,没有使用memcache,所有的和worker都是存储在redis中,感觉像有些安全性不是很高的的缓存也可以存储在memcache中。因此在目前这个项目中,我打算使用两种缓存结合使用,结合两者各自的优势使用
一、什么是memcache?
memcache是一款分布式的缓存系统,其目的是减小用户等待时间,降低RDBMS的访问压力,动态的提高web服务器请求性能。其特点有协议简单,基于内存存储方式,访问速度快。
二、django中如何使用memcache和redis
1 |
|
说明:cache配置中必须配置default
,因为
from django.core.cache import cache
from django.core.cache import caches
cache就等价于caches['default']
,而caches就是setting.py中配置的缓存集。
当要是用某一种缓存的话,cache = caches['redis']
就可以获取该缓存的客户端。
memcache和redis的区别?
共同点:都是基于内存的缓存系统。
不同点:
① redis支持的数据类型更加丰富,有常用的5中数据类型,set,zset,list,hash,string。而memcache只支持键值对
② 过期策略,memcache可以在set时就指定,例如set key1 0 0 8,即永不过期。而Redis可以通过例如expire 设定,例如expire name 10。
③ memcache可以缓存图片,视频等其他东西
③ 分布式,设定memcache集群,利用magent做一主多从;redis可以做一主多从,也可以一主一从。
④ 恢复能力,主机断电后,redis可以通过AOF恢复丢失的数据,数据完整性较高,即具备持久化能力,而memcache不具备,数据丢失了就真的丢失了。
⑤ redis中的键的值最大可以达到512M,而memcache中的键的值最大可以达到1M。
memcache和redis使用的不同场景
① 因为memcache是多核的,而redis是单核的,所以平均下来,redis在每一个核上存储的性能要比memcache更高一点,但是当数据超过100k的时候,memcache的性能将变得更高。
② memcache适合多读少些的操作,对于查询信息来说性能比较高,例如用户信息,文章信息,商品信息等而redis适合对读写效率都很高的操作,对数据的安全性也要求较高,常用于处理复杂的业务,如用户登录次数统计等。
③ 当考虑到数据需要安全存储的时候,redis将会是不错的选择。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!