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

django redis 多少用户访问

发布网友 发布时间:2022-04-11 13:57

我来回答

2个回答

懂视网 时间:2022-04-11 18:18

自定义连接池

这种方式跟普通py文件操作redis一样,代码如下

views.py

 import redis
 from django.shortcuts import render,HttpResponse
 from utils.redis_pool import POOL
 
 def index(request):
 conn = redis.Redis(connection_pool=POOL)
 conn.hset('kkk','age',18)
 
 return HttpResponse('设置成功')
 def order(request):
 conn = redis.Redis(connection_pool=POOL)
 conn.hget('kkk','age')
 
 return HttpResponse('获取成功')

通过第三方组件操作redis

安装

pip3 install django-redis

配置:

settings.py

# redis配置
CACHES = {
 "default": {
 "BACKEND": "django_redis.cache.RedisCache",
 "LOCATION": "redis://127.0.0.1:6379",
 "OPTIONS": {
  "CLIENT_CLASS": "django_redis.client.DefaultClient",
  "CONNECTION_POOL_KWARGS": {"max_connections": 100}
  # "PASSWORD": "密码",
 }
 }
}

使用:

views.py

import redis
from django.shortcuts import render,HttpResponse
from django_redis import get_redis_connection
 
 
def index(request):
 conn = get_redis_connection("default")
 return HttpResponse('设置成功')
def order(request):
 conn = get_redis_connection("default")
 return HttpResponse('获取成功')
from rest_framework.views import APIView
from rest_framework.response import Response
 
from django.core.cache import cache
 
class OrderView(APIView):
 def get(self,request,*args,**kwargs):
 # conn = get_redis_connection('default')
 cache.set('a','b')
 print(cache.get('a'))
 return Response('..')

全站缓存

使用中间件,经过一系列的认证等操作,如果内容在缓存中存在,则使用FetchFromCacheMiddleware获取内容并返回给用户,
当返回给用户之前,判断缓存中是否已经存在,如果不存在则UpdateCacheMiddleware会将缓存保存至缓存,从而实现全站缓存

MIDDLEWARE = [
 'django.middleware.cache.UpdateCacheMiddleware',
 # 其他中间件...
 'django.middleware.cache.FetchFromCacheMiddleware',
 ]

一个放在最上面,一个放在最下面

views.py

from django.shortcuts import render,HttpResponse
import time
 
 
def index(request):
 ctime = str(time.time())
 return HttpResponse(ctime)
 
def order(request):
 ctime = str(time.time())
 return HttpResponse(ctime)

配置了全站缓存,在不同的时间(一定范围内),上面两个视图返回的时间是一样的,都是缓存时的时间

单独视图缓存

方式一:通过装饰器

from django.views.decorators.cache import cache_page
 
 @cache_page(60 * 15)
 def my_view(request):
  ...

方式二:通过url

from django.views.decorators.cache import cache_page
 
 urlpatterns = [
  url(r'^foo/([0-9]{1,2})/$', cache_page(60 * 15)(my_view)),
 ]

局部页面缓存

1. 引入TemplateTag

{% load cache %}

2. 使用缓存

{% cache 5000 缓存的key %}
 缓存内容
{% endcache %}

更多redis知识请关注redis入门教程栏目。

热心网友 时间:2022-04-11 15:26

转向Redis当然也是可取的,许多开发者从一开始就把Redis作为首选数据库;但设想如果你的开发环境已经搭建好,应用已经在上面运行了,那么更换数据库框架显然不那么容易。另外在一些需要大容量数据集的应用,Redis也并不适
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
WIN7不会自动安装AHCI驱动是怎么回事?每次重装系统后都得我自己安装_百... 钉钉录播课能否查看观看时长 为什么城市轨道要有身高条件 城轨交通运营管理专业现身高吗 城市轨道交通运营管理这个专业是否有身高要求 读城轨专业需要什么条件 学习城轨专业需要什么条件? 城市轨道专业最低的身高要求多少?身高158毕业出来好找工作吗? 城轨专业要求身材吗 城轨专业有身高限制吗 django from django_redis import get_redis_connection后如何为该redis添加分布式锁呢? django-redis 支持哪些命令 哪里有基于redis的订阅发布实现的网页聊天室或网页推送系统 java聊天室用redis数据库怎么做 redis做聊天系统可靠吗 redis是否收费 redis什么时候可以搭 怎样将bitmap添加到mysql数据库中 怎么统计redis的hash中的某个字段个数,在线等 redis的setbit这个bit怎么理解,配合bitcount使用 redis安装环境,Linux是redis的最好安装环境,很多人都建议把它按哪里, 微信的摇一摇功能里面可以利用打招呼这个功能进行多次聊天吗? 用微信摇一摇功能摇出来的好友可以看到我的微信中个人信息吗? 用微信摇一摇的时候 摇一下以后 就一直是 正在搜索同一时刻摇晃手机的人 一直没反映是怎么回事 php可以实现微信摇一摇的功能吗 怎么样才能实现微信自动摇一摇 redis过期时间设置 redis 从服务器无法启动 怎样改回主服务 C:\>Redis\redis>redis-server.exe redis.windows.conf 拒绝访问. redis创建报错怎么办? php 加单引号后 就报MYSQL错误! 求解! mysql 插入 单引号'mysql 插入单引号'会出错,如Jim's mysql单引号和双引号的区别 mysql 的单引号和双引号有什么区别吗 求教mysql中单引号和双引号的区别! mysql为什么大双引号标红? mysql,怎么根据一个时间段,然后查询出这个时间段的全部时间?? 图形界面的linux怎么安装redis redis桌面管理工具 怎么启动 至于为什么不使用redis的muti,expire,watch等机制 redis 基础内核参数优化有哪些 django mysql 中文乱码怎么办 为什么Struts2使用Filter处理请求就是体现了面向切面编程的思想 去哪儿网Redis运维实践 运维工程师在工作中对于redis需要进行哪些操作 怎样知道有redis未授权访问 redis未授权访问漏洞怎么排查 redis 未授权访问漏洞windows也有吗 怎么让外网访问redis缓存服务,现在只能被127.0.0.1访问 如何通过一个服务器访问两一个服务器的redis