对于站点缓存,咱们使用redis这款key-value数据库。Redis有着更为复杂的数据结构而且提供对他们的原子性操做,这是一个不一样于其余数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。Redis运行在内存中可是能够持久化到磁盘,因此在对不一样数据集进行高速读写时须要权衡内存,由于数据量不能大于硬件内存。在内存数据库方面的另外一个优势是,相比在磁盘上相同的复杂的数据结构,在内存中操做起来很是简单,这样Redis能够作不少内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,由于他们并不须要进行随机访问。
它与其余key-value数据库有如下三个特色:html
Redis的优点:python
安装redis程序员
参考连接:redis安装
安装完毕后,启动redis服务便可。可是这样的redis尚未密码来保护,谁均可以进入使用,全部咱们要设置一个密码。redis
# 在redis.conf中找到requirepass这一行,将其设置密码 requirepass xxxxxx
这样之后就能够用密码登陆了:数据库
redis-cli -h 主机ip -p 端口号 -a 密码
可是对于Django的应用,咱们安装django-redis这个扩展库使用,它已经集成了redis的使用在其中,咱们只须要参照其官方文档配置便可。django
安装django-redis缓存
pip install django-redis
配置django-redisbash
MIDDLEWARE = [ # 全局cache 'django.middleware.cache.UpdateCacheMiddleware', <---- add here 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', # 全局cache 'django.middleware.cache.FetchFromCacheMiddleware', <---- add here ] # redis缓存 CACHES = { 'default': { 'BACKEND': 'django_redis.cache.RedisCache', 'LOCATION': 'redis://127.0.0.1:6379', 'OPTIONS': { 'CLIENT_CLASS': 'django_redis.client.DefaultClient', 'PASSWORD': os.environ['redis_passwd'], # 隐藏redis的密码,将其设置在操做系统中 }, }, } REDIS_TIMEOUT = 7*24*60*60 CUBES_REDIS_TIMEOUT = 60*60 NEVER_REDIS_TIMEOUT = 365*24*60*60
这样能够作到全局缓存。session