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中字典的基本知识初步介绍
May 21 Python
python编码总结(编码类型、格式、转码)
Jul 01 Python
python装饰器初探(推荐)
Jul 21 Python
python 禁止函数修改列表的实现方法
Aug 03 Python
Python基于列表模拟堆栈和队列功能示例
Jan 05 Python
python生成器与迭代器详解
Jan 01 Python
详解Python静态网页爬取获取高清壁纸
Apr 23 Python
详解Python 调用C# dll库最简方法
Jun 20 Python
利用Python实现Shp格式向GeoJSON的转换方法
Jul 09 Python
python tkinter库实现气泡屏保和锁屏
Jul 29 Python
Python自动化完成tb喵币任务的操作方法
Oct 30 Python
python regex库实例用法总结
Jan 03 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
PHP中大于2038年时间戳的问题处理方案
2015/03/03 PHP
浅析Yii2集成富文本编辑器redactor实例教程
2016/04/25 PHP
PHP实现负载均衡的加权轮询方法分析
2018/08/22 PHP
Prototype使用指南之enumerable.js
2007/01/10 Javascript
js 编写规范
2010/03/03 Javascript
javascript中的继承实例代码
2011/04/27 Javascript
浅谈JavaScript编程语言的编码规范
2011/10/21 Javascript
jQuery在IE下使用未闭合的xml代码创建元素时的Bug介绍
2012/01/10 Javascript
js怎么终止程序return不行换jfslk
2013/05/30 Javascript
将input file的选择的文件清空的两种解决方案
2013/10/21 Javascript
jQuery基本选择器(实例及表单域value的获取方法)
2016/05/20 Javascript
jQuery控制文本框只能输入数字和字母及使用方法
2016/05/26 Javascript
javascript用正则表达式过滤空格的实现代码
2016/06/14 Javascript
jQuery ajaxSubmit 实现ajax提交表单局部刷新
2016/07/04 Javascript
React实现点击删除列表中对应项
2017/01/10 Javascript
vue脚手架vue-cli的学习使用教程
2017/06/06 Javascript
jQuery图片查看插件Magnify开发详解
2017/12/25 jQuery
Vuex实现计数器以及列表展示效果
2018/03/10 Javascript
vue  directive定义全局和局部指令及指令简写
2018/11/20 Javascript
JavaScript创建对象的四种常用模式实例分析
2019/01/11 Javascript
浅谈发布订阅模式与观察者模式
2019/04/09 Javascript
python简单获取数组元素个数的方法
2015/07/13 Python
Django中URL视图函数的一些高级概念介绍
2015/07/20 Python
Python多进程分块读取超大文件的方法
2016/04/13 Python
Python 爬虫学习笔记之单线程爬虫
2016/09/21 Python
详谈在flask中使用jsonify和json.dumps的区别
2018/03/26 Python
python实现朴素贝叶斯分类器
2018/03/28 Python
详解Python 定时框架 Apscheduler原理及安装过程
2019/06/14 Python
python3 pillow模块实现简单验证码
2019/10/31 Python
Python稀疏矩阵及参数保存代码实现
2020/04/18 Python
程序设计HTML5 Canvas API
2013/04/08 HTML / CSS
伦敦哈德森鞋:Hudson Shoes
2018/02/06 全球购物
加州风格的游泳和沙滩装品牌:Cupshe
2019/06/10 全球购物
行政人事岗位职责
2014/03/17 职场文书
2015年党风廉政建设目标责任书
2015/05/08 职场文书
Python实现批量自动整理文件
2022/03/16 Python