问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何django中用redis缓存服务器,求详细教程。

发布网友 发布时间:2022-04-27 09:25

我来回答

2个回答

懂视网 时间:2022-05-03 06:18

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}

 }
 }

}

 

 

  

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

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

标签:sel   end   数据库   ack   cli   django   cache   data   may   

热心网友 时间:2022-05-03 03:26

django-redis 中文文档
Andrey Antukh, niwi@niwi.be 4.7.0

翻译: RaPoSpectre

1. 介绍

django-redis 基于 BSD 许可, 是一个使 Django 支持 Redis cache/session 后端的全功能组件.

1.1 为何要用 django-redis ?
因为:

持续更新
本地化的 redis-py URL 符号连接字符串
可扩展客户端
可扩展解析器
可扩展序列器
默认客户端主/从支持
完善的测试
已在一些项目的生产环境中作为 cache 和 session 使用
支持永不超时设置
原生进入 redis 客户端/连接池支持
高可配置 ( 例如仿真缓存的异常行为 )
默认支持 unix 套接字
支持 Python 2.7, 3.4, 3.5 以及 3.6
1.2 可用的 django-redis 版本
稳定版本: 4.7.0
稳定版本: 3.8.4
1.3 我该使用哪个版本
版本号像 3.6, 3.7 … 等的是主要发行版本, 会包含向后不兼容的内容. 跟多信息请在升级前阅读升级日志.

版本号像 3.7.0, 3.7.1… 等的是小更新或者 bug 修复版本, 一般只会包含 bug 修复, 没有功能更新.

1.4 依赖
1.4.1 Django 版本支持
django-redis 3.8.x 支持 django 1.4, 1.5, 1.6, 1.7 (或许会有 1.8)
django-redis 4.4.x 支持 django 1.6, 1.7, 1.8, 1.9 和 1.10
1.4.2 Redis Server 支持
django-redis 3.x.y 支持 redis-server 2.6.x 或更高
django-redis 4.x.y 支持 redis-server 2.8
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 黑客攻击报案有用吗 django的redis怎么用缓存 在跟岗实习中,学生存在的心里问题注意是哪些? 如何在django中使用redis做缓存服务器 无人机跟岗手册实习工作及实施 一篇跟岗实践教育案例分析怎么写 用电脑扫描电瓶标签怎么操作 怎样将扫描图片转换成电路PCB文件,听说要用 柯达Z915怎么把照片传到电脑上。 如何将带扫描功能的网络打印机,扫描文件(图片格式)存到自己的电脑上? 怎样在word图片上打字? 如何在word图片上打字 有谁知道长沙雅礼中学班主任老师多少钱一个月? 长沙浏阳的教师工资是多少,具体点? 长沙市一中新教师的待遇怎么样?月薪能达到多少?家不在长沙的教师住在哪里呢?教师一般都在哪里吃饭?谢 长沙市直属学校教师工资发放形式 长沙没考编的小学老师工资多少? 长沙教师工资待遇怎么样? 湖南省重点中学教师工资师多少?谢谢 长沙特校教师工资 长沙财经学校的老师一月能开多少工资 中职学生跟岗实习的管理实践 redis django 哪些数据需要在redis中存储 什么是跟岗学习 怎么查看通过django设置的缓存 跟岗实习巡视的重点环节怎么写 用django cache设置的redis key的名字前加的序号有什么意义 大学生跟岗实习和自主实习有何利弊?求解答... django可以支持哪些缓存系统 使用redis作为缓存,数据还需要存入数据库中吗 安全管理跟岗实习的目的要求及注意事项 数据库存到redis缓存中.请问怎么把redi redis数据库如何存取 django redis-cache服务重启后,缓存还在吗 redis 怎么加载数据库数据 以前新农合医保卡现在是职工医保生孩子怎么报销? 职工医保生孩子报销多少 瑜伽哪个动作可以长高 瑜伽长高拉伸动作有哪些 哪些瑜伽动作可以帮助长高 25岁怎样练瑜伽能长高 成年人增高的三种方法?