背景和意义
服务器数据非经常更新。若每次都从硬盘读取一次,浪费服务器资源、拖慢响应速度。而且数据更新频率较高,服务器负担比较大。若保存到数据库,还需要额外建立一张对应的表存储数据。在Django中建立表通常做法是建立一个模型。看似简单,问题调试麻烦、开发时长久。为了进行服务器的加速,使用Redis进行缓存。
windown:
1.安装redis
Redis不支持Windows!在它官网写得很清楚。但是开发环境一般是Windows系统。为了方便开发和调试,需要在Windows中安装Redis。微软自己弄了Redis的Windows版本。打开https://github.com/MSOpenTech/redis/releases下载msi安装包。该版本是64位。安装msi过程中,有个选项是否加入系统环境变量,记得勾上。一路下一步,安装。完成之后打开cmd,输入redis-server命令查看是否可以使用。直接输入redis-server命令使用的配置文件是安装目录下的redis.windows.conf文件。
若提示错误 “ConnectionError: Error 10061 connecting to None:6379”,可以如下操作,打开cmd输入如下命令
redis-cli shutdown
2.进入redis安装目录, 启动windown中的redis
redis-server.exe redis.windows.conf
3.重新打开一个控制台,刚开始连接服务,因为初始没有密码,所以无需输入,即可连接服务。
登陆命令
redis-cli.exe -h 127.0.0.1 -p 6379 //无需添加密码参数
4. 密码操作
4.1 修改密码
打开redis.windows.conf<如果没有此文件,需自己 http://download.redis.io/redis-stable/redis.conf,放置到redis目录下>,找到requirepass值修改密码,如下:
# requirepass foobared requirepass yourpassword //此处注意,行前不能有空格
4.2 重新设置密码后,重新登录才能获取操作权限
redis-cli.exe -h 127.0.0.1 -p 6379 -a 123456 //需添加密码参数
4.3 获取密码
config get requirepass
Django settings.py
# redis做缓存 CACHES = { 'default': { 'BACKEND': 'django_redis.cache.RedisCache', 'LOCATION': 'redis://127.0.0.1:6379', 'OPTIONS': { 'CLIENT_CLASS': 'django_redis.client.DefaultClient', 'PASSWORD': 'requirepass', } } } REDIS_TIMEOUT=7*24*60*60 CUBES_REDIS_TIMEOUT=60*60 NEVER_REDIS_TIMEOUT=365*24*60*60
下载包
pip install django-redis
测试
进入django的后台命令模式: from django.core.cache import cache #引入缓存模块 cache.set('data', '555', 60*60) #写入key为v,值为555的缓存,有效期30分钟 cache.has_key('data') #判断key为v是否存在 cache.get('data') #获取key为v的缓存
更多命令请查看网址: https://django-redis-chs.readthedocs.io/zh_CN/latest/#
设置redis开启启动: https://jingyan.baidu.com/article/20095761f30698cb0621b47e.html