Django使用redis缓存服务器的实现代码示例


Posted in Python onApril 28, 2019

redis相信大家都很熟悉了,和memcached一样是一个高性能的key-value数据库,至于什么是缓存服务器,度娘都有很明白的介绍了,我在这里就不一一介绍了。

那我们一般什么情况下才会使用缓存服务器呢?可不是什么情况都需要的哦,一般来说是在需要频繁对一个字段读取的时候才会需要将这个字段放入到缓存服务器上,而且由于key-value数据库一般只是放很简单的数据,所以在选择保存的对象的时候要注意选择好。

下面我就来介绍如何在Django中配置使用redis数据库,首先是先安装redis了,在Ubuntu中执行下面这句命令:

#安装Redis服务器端

sudo apt-get install redis-server

然后为了能在Django中使用redis,还需要安装redis for Django的插件:

pip install django-redis

这是一个开源的项目,github地址是https://github.com/niwibe/django-redis,感谢作者。

那么现在就是在Django的settings中配置了。

CACHES = {
  'default': {
    'BACKEND': 'redis_cache.cache.RedisCache',
    'LOCATION': '127.0.0.1:6379',
    "OPTIONS": {
      "CLIENT_CLASS": "redis_cache.client.DefaultClient",
    },
  },
}
REDIS_TIMEOUT=7*24*60*60
CUBES_REDIS_TIMEOUT=60*60
NEVER_REDIS_TIMEOUT=365*24*60*60

其实只是需要CACHES中的那几条就可以了,后面这三句可以不需要的,只是我后面的例子里需要用到,我就在这里配置了。

好了,现在连接和配置都已经完成了,那么在项目中该如何使用呢?接下来看下面这段例子吧。

from django.conf import settings
from django.core.cache import cache
#read cache user id
def read_from_cache(self, user_name):
  key = 'user_id_of_'+user_name
  value = cache.get(key)
  if value == None:
    data = None
  else:
    data = json.loads(value)
  return data
#write cache user id
def write_to_cache(self, user_name):
  key = 'user_id_of_'+user_name
  cache.set(key, json.dumps(user_name), settings.NEVER_REDIS_TIMEOUT)

通过上面的这两个方法就可以实现对redis的读取操作了,只需要将需要的字段当参数传入到方法中就好了。

那么之前提到的memcached呢?其实也是一样的配置:

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

当然用法也是和我上面的例子是一样的了。其实对于redis这样的缓存服务器来说,配置都是很简单的,而具体的使用也不难,官网上面也有很多简单明了的例子可以供我们参考,只有一点需要注意的,那就是对于要将什么样的信息保存到redis才是我们真正需要关心的。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python脚本实现xls(xlsx)转成csv
Apr 10 Python
深入理解Django自定义信号(signals)
Oct 15 Python
python 获取utc时间转化为本地时间的方法
Dec 31 Python
python3利用Socket实现通信的方法示例
May 06 Python
python绘制已知点的坐标的直线实例
Jul 04 Python
Python Numpy计算各类距离的方法
Jul 05 Python
Python替换月份为英文缩写的实现方法
Jul 15 Python
Python Opencv提取图片中某种颜色组成的图形的方法
Sep 19 Python
使用matplotlib绘制图例标签中带有公式的图
Dec 13 Python
Django 删除upload_to文件的步骤
Mar 30 Python
Python几种常见算法汇总
Jun 02 Python
python开根号实例讲解
Aug 30 Python
django的settings中设置中文支持的实现
Apr 28 #Python
Django数据库类库MySQLdb使用详解
Apr 28 #Python
Django中如何防范CSRF跨站点请求伪造攻击的实现
Apr 28 #Python
​如何愉快地迁移到 Python 3
Apr 28 #Python
python学习开发mock接口
Apr 28 #Python
Python简单基础小程序的实例代码
Apr 28 #Python
python实现Excel文件转换为TXT文件
Apr 28 #Python
You might like
全国FM电台频率大全 - 2 天津市
2020/03/11 无线电
php selectradio和checkbox默认选择的实现方法详解
2013/06/29 PHP
PHP文件缓存内容保存格式实例分析
2014/08/20 PHP
PHP实现采集中国天气网未来7天天气
2014/10/15 PHP
WordPress中登陆后关闭登陆页面及设置用户不可见栏目
2015/12/31 PHP
Yii2搭建后台并实现rbac权限控制完整实例教程
2016/04/28 PHP
PHP登录验证码的实现与使用方法
2016/07/07 PHP
Extjs学习笔记之四 工具栏和菜单
2010/01/07 Javascript
ajax java 实现自动完成功能
2012/12/19 Javascript
原生js实现跨浏览器获取鼠标按键的值
2013/04/08 Javascript
extjs两个tbar问题探讨
2013/08/08 Javascript
利用jQuery简单实现产品展示图片左右滚动功能(示例代码)
2014/01/02 Javascript
javascript删除字符串最后一个字符
2014/01/14 Javascript
Javascript玩转继承(二)
2014/05/08 Javascript
Javascript的严格模式strict mode详细介绍
2014/06/06 Javascript
浅谈javascript语法和定时函数
2015/05/03 Javascript
javascript断点调试心得分享
2016/04/23 Javascript
js控制一个按钮是否可点击(可使用)disabled的实例
2017/02/14 Javascript
JQuery validate 验证一个单独的表单元素实例
2017/02/17 Javascript
利用Three.js如何实现阴影效果实例代码
2017/09/26 Javascript
在Create React App中启用Sass和Less的方法示例
2019/01/16 Javascript
javascript前端实现多视频上传
2020/12/13 Javascript
[02:05]2014DOTA2西雅图国际邀请赛 BBC第二天小组赛总结
2014/07/11 DOTA
python Django连接MySQL数据库做增删改查
2013/11/07 Python
在Python中移动目录结构的方法
2016/01/31 Python
linux平台使用Python制作BT种子并获取BT种子信息的方法
2017/01/20 Python
Python实现的当前时间多加一天、一小时、一分钟操作示例
2018/05/21 Python
Python实现获取邮箱内容并解析的方法示例
2018/06/16 Python
Python实现语音识别和语音合成功能
2019/09/20 Python
新年福利来一波之Python轻松集齐五福(demo)
2020/01/20 Python
使用Python 自动生成 Word 文档的教程
2020/02/13 Python
css3实现一个div设置多张背景图片及background-image属性实例演示
2017/08/10 HTML / CSS
波兰多品牌运动商店:StreetStyle24.pl
2020/09/22 全球购物
教师个人的自我评价分享
2014/01/02 职场文书
英文道歉信
2015/01/20 职场文书
碧霞祠导游词
2015/02/09 职场文书