redis数据库如何用Django框架缓存数据

---恢复内容开始---

  一.python 使用redis

   1.1 安装 pip install redis

    测试有一些基本的数据类型

import redis
# redis 是一个缓存数据库

# r = redis.Redis(host=‘127.0.0.1‘, port=6379)
# 一般采用host与redis 可以不用配置, 用db来选择操作的数据库

# 如:
r = redis.Redis(db=11)
# r.set() 设置值 操作字符串

r.set(‘name‘,‘coco‘)
print(r.get(‘name‘))

# 设置过期时间
# r.setex(‘age‘, 5, ‘18‘)  # 不能一置打开代开 会重新设置
print(r.get(‘age‘)) # 5 秒后None

  hset() 哈希字典

# hset
# print(r.get(‘age‘)) # 5 秒后None
r.hset(‘student‘,‘name‘,‘yye‘)  # name key value 哈希字典的设置值和取值方法
print(r.hget(‘student‘,‘name‘))

  zdd() >>>zset() sorted set() 有序集合

# zadd()
# r.zadd(‘mayup‘,{‘koko‘:100,‘coco‘:60,‘yye‘:80})  # 有序集合
# print(r.zrange(‘mayup‘,0,0))  # 正向取值 [b‘coco‘]
# print(r.zrevrange(‘mayup‘,0,0))  # 取得最后一个 [b‘koko‘]

  1.2 redis 建立连接池

    (1)第一种方式

# redis 原生的建立连接池(支持并发)
pool = redis.ConnectionPool(db=12,max_connections=100)
rp = redis.Redis(connection_pool=pool)
rp.set(‘name‘,‘koko‘)
print(rp.get(‘name‘))

    (2) django 使用redis缓存

  

# 导入测试环境
import os
import django

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "luffyapi.settings.dev")
django.setup()

from user import models

user = models.User.objects.first()
# 测试子自定义序列化类
from rest_framework.serializers import ModelSerializer

class UserModelSerializer(ModelSerializer):
    class Meta:
        model = models.User
        fields = [‘username‘, ‘password‘]

user_data = UserModelSerializer(user).data
# print(user_data)
# 原生redis
# import redis
# r = redis.Redis()
# r.set(user.usernaem,user_data)

from django.core.cache import cache  # >>>
# cache.set()  # vdef set(self, name, value, ex=None, px=None, nx=False, xx=False):
# cache.get()  #  cache 是一个高速缓存器
cache.set(user.username,user_data,5)
res = cache.get(user.username)
print(res, type(res))
# {‘username‘: ‘admin‘, ‘password‘: ‘pbkdf2_sha256$1000dcKSQ=‘}
# <class ‘dict‘>  序列化成字典的格式进行存储

# 如和进行数据的存储 现在是默认存储到mameche 需要进行配置存储到我们redis 数据库的缓存
# cache比原生的redis 的好处: (1)djano 和drf份序列化结构
# (2) 如果是普通的json格式 我们就序列化成json格式的字符串
# (3)如果是图片的我们通过图片格式度成二进制

  settings  >>>dev开发环境下进行配置

# import logging  测试的话导入一下
# logging.getLogger(‘django‘)

 # 配制redis 缓存是用:需要额外的安装django-redis
 # 步骤: (1) 将缓存存储位置配置到redis 中

CACHES = {
    ‘default‘:{
        ‘BACKEND‘:‘django_redis.cache.RedisCache‘,
        ‘LOCATION‘:‘redis://127.0.0.1:6379/10‘,
        ‘OPTIONS‘:{
            ‘CLIENT_CLASS‘:‘django_redis.client.DefaultClient‘,
            ‘CONNECTION_POOL_KWARGS‘:{‘max_connections‘:100}

        }
    }

}

  

---恢复内容结束---

原文地址:https://www.cnblogs.com/mofujin/p/11769042.html

时间: 2024-10-10 00:12:45

redis数据库如何用Django框架缓存数据的相关文章

Window环境下配置Redis服务的方法及查看缓存数据的工具介绍

工具下载位置:http://pan.baidu.com/s/1hqVh1f2,包括服务端配置以及查看缓存的工具. 服务端是以服务的形式运行,将Redis服务端解压到某个目录,然后执行cmd执行命令: redis-server.exe --service-install redis.windows.conf --loglevel verbose 注意事项,修改Redis端口及密码的配置在文件redis.windows-service.conf中:(使用redis284.rar中解压文件) 修改端口

Python:Django框架开发数据可视化网站

Step 0: 使用新的 virtualenv 环境 建议使用 1.11.4 版本的 Django $ virtualenv --no-site-packages pyecharts-env $ source pyecharts-env/bin/activate $ pip install django==1.11.4 $ pip install pyecharts Step 1: 新建一个 django 项目 $ django-admin startproject myechartsite 创

django 使用redis进行页面数据缓存和更新缓存数据

转自:https://blog.csdn.net/xiaohuoche175/article/details/89304601 在开发过程中会遇到一些页面的数据是很长时间才进行更新的,不使用缓存的情况下,用户每次访问这些都需要先去数据库中获取这些数据,当访问量较大时,这样获取数据的方式就会降低页面的访问速度,影响效率,这时就可以使用redis将这些数据保存起来,通过判断是否生成过获取以及是否更新过数据来生成新的缓存数据 具体操作如下: 在settings.py里添加缓存设置 # Django的缓

四 Django框架,models.py模块,数据库操作——创建表、数据类型、索引、admin后台,补充Django目录说明以及全局配置文件配置

Django框架,models.py模块,数据库操作--创建表.数据类型.索引.admin后台,补充Django目录说明以及全局配置文件配置 数据库配置 django默认支持sqlite,mysql, oracle,postgresql数据库. 1,django默认使用sqlite的数据库,默认自带sqlite的数据库驱动   引擎名称:django.db.backends.sqlite3 在全局配置文件settings.py可以看到确认配置使用的sqlite数据库 # Database # h

数据库历险记(三) | 缓存框架的连环炮

文章首发于微信公众号「陈树义」,专注于 Java 技术分享的社区.点击链接扫描二维码,与500位小伙伴一起共同进步.微信公众号二维码 http://p3npq6ecr.bkt.clouddn.com/blog/chenshuyi_gongzhonghao_guide_full.jpg 最近在思考数据库以及缓存的问题,发现这些知识点其实是有一点关联的,于是这篇文章通过一个连环提问的方式将这些知识点串联起来. 问:为什么要用 Memcached.Redis,直接用 MySQL 这些数据库不好吗? 答

django之缓存的用法, 文件形式与 redis的基本使用

django的缓存的用法讲解 1. django缓存: 缓存的机制出现主要是缓解了数据库的压力而存在的 2. 动态网站中,用户的请求都会去数据库中进行相应的操作,缓存的出现是提高了网站的并发量 3. django的缓存分为 : 三种粒度, 六种缓存方式: 4. 什么是三种粒度: 全站缓存, 单页面缓存, 页面中局部缓存 6. 六种缓存方式: 开发调试缓存, 内存缓存, 文件缓存, 数据库缓存, Memcache缓存(使用python-memcached, pylibmc 两种) 7. 在Djan

将mysql中的全国区域表数据转移至Redis数据库

搭建环境: 1.meven工程 2.Spring整合Mybatis框架 3.Spring整合Redis数据库 注:这里的大部分内容只有讲在java中如何使用Redis数据库 一丶引入Redus相关jar包,包括Spring整合Redis的jar包 关于jar包版本问题: 目前我使用的这jar版本是没有出现问题的,但我换了一些版本后出现了报错,所以推荐使用我的jar版本即可 <!--Redis驱动包--> <dependency> <groupId>redis.clien

django框架中的缓存系统

一.浏览器的缓存机制 Cache-Control策略: Cache-Control和Expires的作用相似,即指出当前资源的有效期,控制浏览器是直接从浏览器缓存获取数据还是发送Request到服务端获取数据,只不过Cache-Control的选择方式更多,设置详细,如果要同时设置,优先级高于Expires. Cache-Control: max-age=10,即设置缓存存储的最大周期为10s,这和Date与Expires的差值相对应,private表明响应只能被单个用户缓存,不能作为共享缓存(

django指定缓存redis

在开发模式下你需要考虑的问题有很多,比如如何优化django性能, 利用nosql数据库是一个很好的选择 django session机制默认是储存在 数据库中 但是想提升性能使用redis储存是一个很好的选择 在redis中保存session,需要引入第三方扩展,我们可以使用django-redis来解决. 安装扩展 pip install django-redis 但是你需要在settings.py  设置 CACHES = { "default": { "BACKEND