下载

: pip install django-redis

说明

django连接django_redis后会顶替原memcache数据库

django使用django_redis缓存数据库是通过内存管理来操作,所以需要导入django的内存管理cache

补充:

  1. 原生redis不能存储drf序列化的结果,因为其结果不是字符串类型,所以使用django_redis
  2. 可以将django_redis理解为是redis的辅助工具,可以将drf序列化后的结果存入redis库中
  3. 补充知识: django内存管理
  4. from django.core.cache import cache

内存中设置值

  1. cache.set(key, value, exp)

取值

  1. cache.get(key)
  2. 注:默认操作的是djangomemcache内存数据库

使用

配置: settings/dev.py缓存配置 - redis存储:依赖 django-redis,要安装>>>pip install django-redis

  1. CACHES = {
  2. "default": {
  3. "BACKEND": "django_redis.cache.RedisCache",
  4. "LOCATION": "redis://127.0.0.1:6379/7", # 连入指定数据库 这里连接的是7号数据库
  5. "OPTIONS": {
  6. "CLIENT_CLASS": "django_redis.client.DefaultClient",
  7. "CONNECTION_POOL_KWARGS": {"max_connections": 100} # 最大连接数
  8. }
  9. }
  10. }

数据准备

  1. import os, django
  2. os.environ.setdefault("DJANGO_SETTINGS_MODULE", "luffyapi.settings.dev")
  3. django.setup()
  4. from django.core.cache import cache
  5. from user.models import User
  6. from rest_framework.serializers import ModelSerializer
  7. class UserModelSerializer(ModelSerializer):
  8. class Meta:
  9. model = User
  10. fields = ['username', 'password']

获取用户对象

  1. user_obj = User.objects.all().first()

序列化

  1. user_data = UserModelSerializer(user_obj).data
  2. print(user_data)#{'username': 'admin', 'password': 'pbkdf2_sha256$0oIWjJbH98M$tbYJl1ja25oSXOxv8WW8I8fxsb3/tZgbtgcDhUbTyuQ='}
  3. print(type(user_data)) # <class 'rest_framework.utils.serializer_helpers.ReturnDict'>

存入redis内存数据库

  1. cache.set(user_obj.username, user_data , 10) # 参数: key, value, 过期时间/秒
  2. #也可以写成
  3. cache.setex('name',10,'bob')

取出

  1. res = cache.get(user_obj.username)
  2. print(res)
  3. #{'username': 'admin', 'password': 'pbkdf2_sha256IWjJbH98MtbYJl1ja25oSXOxv8WW8I8fxsb3/tZgbtgcDhUbTyuQ='}
  4. print(type(res)) # <class 'dict'>

django_redis的更多相关文章

  1. django_redis作为 session backend 使用配置

    Django 默认可以使用任何 cache backend 作为 session backend, 将 django-redis 作为 session 储存后端不用安装任何额外的 backend # ...

  2. Django

    一.Django 简介 Django 是一个由 Python 写成的开放源代码的 Web 应用框架.它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是 CMS(内容管理系统) ...

  3. OpenStack和Redis

    前言: 最近开始捣鼓OpenStack了,在用RDO部署OpenStack的时候,发现装了Redis, 遂决定看看OpenStack哪些地方(可以)用到Redis.  Redis作为OpenStack ...

  4. Django REST framework+Vue 打造生鲜超市(十二)

    十三.首页.商品数量.缓存和限速功能开发  13.1.轮播图接口实现 首先把pycharm环境改成本地的,vue中local_host也改成本地 (1)goods/serializer class B ...

  5. django-redis

    linuxapt-get install redis-serverpip install django-redis vim /etc/redis/redis.conf maxmemory 20mb s ...

  6. Django学习之十二:Cache 缓存组件

    目录 Django Cache 缓存组件 缓存逻辑伪代码 配置缓存源 可配置参数说明 01. Django的默认缓存 02. 基于Redis的django-redis 03. 自定义cache 04. ...

  7. Python 经典面试题汇总之框架篇

    前端和框架 1.谈谈你对http协议的认识 浏览器本质,socket客户端遵循Http协议 HTTP协议本质:通过\r\n分割的规范,请求响应之后断开链接 ==> 短连接.无状态 具体: Htt ...

  8. DRF缓存

    对于现在的动态网站来讲,所有的界面展示都是通过客户端请求服务端,服务端再去请求数据库,然后将请求到的数据渲染后返回给客户端.用户每次访问页面都需要去请求数据库,如果同时有多个人访问的话,对于我们的数据 ...

  9. 11 Django RESTful framework 实现缓存

    01-安装 pip install drf-extensions 02-导入 from rest_framework_extensions.cache.mixins import CacheRespo ...

随机推荐

  1. LeetCode_58. Length of Last Word

    58. Length of Last Word Easy Given a string s consists of upper/lower-case alphabets and empty space ...

  2. Hive之insert into与insert overwrite区别

    一.实践先行,直接上手 1. hive 表及数据准备 建表,并插入初始数据.向表中插入 hive> use test; hive> create table kwang_test (id ...

  3. 无权限安装vim8

    本文介绍Ubuntu14.04在没有sudo权限的情况下安装vim8 1.默认vim版本为7.3 $ vim --versionVIM - Vi IMproved 7.3 (2010 Aug 15, ...

  4. 【C/C++开发】运算符重载

    c++的一大特性就是重载(overload),通过重载可以把功能相似的几个函数合为一个,使得程序更加简洁.高效.在c++中不止函数可以重载,运算符也可以重载.由于一般数据类型间的运算符没有重载的必要, ...

  5. PPM / PGM / PBM 图像文件格式

    PPM / PGM / PBM 图像文件格式 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 说明:在进行图像压缩后传输,然后解压缩显示的过程中,通常会用到P ...

  6. python3.6-Yelp/elastalert0.2.1-elk7.2.0邮件加企业微信告警

    0.修改时区(前提条件已经安装好elk7.2) rm -f /etc/localtimecp /usr/share/zoneinfo/Asia/Shanghai /etc/localtimetimed ...

  7. 通过 Spring Session 实现新一代的 Session 管理

    长期以来,session 管理就是企业级 Java 中的一部分,以致于我们潜意识就认为它是已经解决的问题,在最近的记忆中,我们没有看到这个领域有很大的革新. 但是,现代的趋势是微服务以及可水平扩展的原 ...

  8. java积累的细节问题

    一.将几个数字进行拼接,拼接成字符串 一定要将""放到几个数字之前,否则就会把数字相加之后的数转化成字符串 如你需要拼接年份,月份,和日 如果:2018+12+13+"& ...

  9. TCP状态转换(图解+文字解说)

    <深入分析 javaweb 技术内幕>P38 读书扩展 作者:淮左白衣 写于2018年4月12日20:58:36 目录 TCP状态转换图解 图解三次握手 文字讲解三次握手: 图解四次挥手 ...

  10. Python连接ORACLE操作

    一.准备工作 1.安装cx_Oracle ttps://pypi.python.org/pypi下查找cx_Oracle并下载 执行安装命令 pip install cx_Oracle-6.0rc1- ...