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 相关文章推荐
win7 下搭建sublime的python开发环境的配置方法
Jun 18 Python
跟老齐学Python之list和str比较
Sep 20 Python
详解Python中类的定义与使用
Apr 11 Python
简单了解什么是神经网络
Dec 23 Python
Tensorflow 训练自己的数据集将数据直接导入到内存
Jun 19 Python
详解python配置虚拟环境
Apr 08 Python
Python中Numpy mat的使用详解
May 24 Python
python3的url编码和解码,自定义gbk、utf-8的例子
Aug 22 Python
python文件操作的简单方法总结
Nov 07 Python
Selenium使用Chrome模拟手机浏览器方法解析
Apr 10 Python
keras读取训练好的模型参数并把参数赋值给其它模型详解
Jun 15 Python
python标准库ElementTree处理xml
May 20 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跨服务器访问方法小结
2015/05/12 PHP
PHP中递归的实现实例详解
2017/11/14 PHP
可兼容php5与php7的cURL文件上传功能实例分析
2018/05/11 PHP
PHP实现Markdown文章上传到七牛图床的实例内容
2020/02/11 PHP
jQuery lazyLoad图片延迟加载插件的优化改造方法分享
2013/08/13 Javascript
js动态添加事件并可传参数示例代码
2013/10/21 Javascript
jQuery 的全选(全非选)即取得被选中的值使用介绍
2013/11/12 Javascript
js闭包所用的场合以及优缺点分析
2015/06/22 Javascript
jquery原理以及学习技巧介绍
2015/11/11 Javascript
jquery获取select选中值的方法分析
2015/12/22 Javascript
js获取form表单所有数据的简单方法
2016/08/18 Javascript
完美解决jQuery的hover事件在IE中不停闪动的问题
2017/02/10 Javascript
JS操作时间 - UNIX时间戳的简单介绍(必看篇)
2017/08/16 Javascript
nodejs实现大文件(在线视频)的读取
2020/10/16 NodeJs
bootstrap 弹出框modal添加垂直方向滚轴效果
2018/07/09 Javascript
原生js实现trigger方法示例代码
2019/05/22 Javascript
js Array.slice的8种不同用法示例
2019/07/10 Javascript
javascript面向对象三大特征之多态实例详解
2019/07/24 Javascript
关于layui 弹出层一闪而过就消失的解决方法
2019/09/09 Javascript
如何处理Python3.4 使用pymssql 乱码问题
2016/01/08 Python
Python字符串切片操作知识详解
2016/03/28 Python
windows系统下Python环境的搭建(Aptana Studio)
2017/03/06 Python
tensorflow获取变量维度信息
2018/03/10 Python
Python cookbook(字符串与文本)在字符串的开头或结尾处进行文本匹配操作
2018/04/20 Python
Python3实现的爬虫爬取数据并存入mysql数据库操作示例
2018/06/06 Python
tensorflow实现简单逻辑回归
2018/09/07 Python
python为Django项目上的每个应用程序创建不同的自定义404页面(最佳答案)
2020/03/09 Python
python打开文件的方式有哪些
2020/06/29 Python
各大浏览器 CSS3 和 HTML5 兼容速查表 图文
2010/04/01 HTML / CSS
美国高档帽子网上商店:Hats.com
2018/08/09 全球购物
美国温暖商店:The Warming Store
2018/12/15 全球购物
怎么写有吸引力的自荐信
2013/11/17 职场文书
工地资料员岗位职责
2013/12/31 职场文书
总账会计岗位职责
2014/03/13 职场文书
2015年加油站工作总结
2015/05/13 职场文书
导游词之广东佛山(南风古灶)
2019/09/24 职场文书