Django实战016django中使用redis详解
安装django-redis
django-redis是一个使 Django支持 Redis cache/session 后端的全功能组件,通过该组件我们可以很方便快捷的操作redis。安装django-redis最简单的方法就是利用 pip命令:pip install django-redis,pip会自动下载并安装redis及相关依赖。
Cache缓存设置
在settings.py文件中将Django中的缓存设置为redis,这里我们主要设置LOCATION和OPTIONS即可,其中host是redis主机ip,port当然是redis的端口了(默认6379),database则是redis中的数据库。redis默认提供了16个数据库,使用的时候可以自行指定(默认为第一个)。OPTIONS中可以添加redis的配置信息,如redis的最大连接数和密码等。
Session设置
Djano使用session保存用户的状态时默认将session是存储在数据库中,当用户频繁的访问服务器会增大数据库的压力也会降低用户访问的速度。为了解决这个问题通常会将session存储到redis中来提高session的访问速度,同时也可以缓解服务器的压力。访问不大可以将session的存储地方设置到Django的缓存中,访问量较大的话可以将其配置到redis中。
视图中使用redis
在视图中的调用redis我们需要引入django_redis,这里写个最简单的hash值插入。通过django_redis中的get_redis_connection来连接redis,连接成功之后通过redis提供的hash设置方法hset我们写入一条数据。这里我们定义一个名字叫jack的人,其中键为person,字段为name,值为jack。
定义路由
定义路由有两种方式,分别是通过Djangourl模块和path模块来实现。Django在1.x版本默认使用url,2.x版本之后就改用path了。具体用哪个看个人习惯吧,反正功能是一样的。下面是两种方式实现的示例,可以做个参考!
postman测试
接下来我们就可以通过postman来测试下接口了,这里我们不需要提供任何参数所以直接用Get来请求即可。我在接口中通过HttpResponse返回了200,所以在发送请求之后收到200则说明我们的请求已经成了。
验证结果
现在我们到redis中来看看是否已经写入了一个名字叫jack的人,打开cmd窗口通过redis-cli.exe登录redis。我们插入的是hash数据,所以获取hash数据的方法为hget。通过执行命令:hget person name就可以拿到person中字段为name的值,这里可以看到输出了"jack"说明我们的值成功写入redis中。
总结:
使用redis还是比较简单的,只是要注意一下redis存储的是二进制数据(byte类型),json本身不支持二进制数据无法直接传递byte类型。所以拿到redis数据之后需要对二进制数据进行转义,以便可以将其放入JSON中的字符串元素中。以上内容是小编给大家分享的【Django实战016:django中使用redis详解】,希望对大家有所帮助。如果大家有任何疑问请给我留言,小编会及时回复大家的。更多Django实战技巧可以参考专栏:
为了方便学习,下面附上本文用到的源码:>pip install django-redis # Redis缓存配置 CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "redis://host:port/database", "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", "CONNECTION_POOL_KWARGS": {"max_connections": 100}, # "PASSWORD": "密码", } } } # 将session的存储到Django缓存中 SESSION_ENGINE = "django.contrib.sessions.backends.cache" SESSION_CACHE_ALIAS = "default" # 将session存储配置到redis中 SESSION_ENGINE = "redis_sessions.session" SESSION_REDIS_HOST = "localhost" SESSION_REDIS_PORT = 6379 SESSION_REDIS_DB = 2 SESSION_REDIS_PASSWORD = "" SESSION_REDIS_PREFIX = "session" ----------------------------------------------------------------------------- import django_redis from django.http import HttpResponse def SetHash(request): conn=django_redis.get_redis_connection("default") conn.hset("person", "name", "jack") return HttpResponse("200") // urls模块使用 from django.conf.urls import include, url from django.contrib import admin urlpatterns = [ url(r"^admin/", include(admin.site.urls)), //直接定义路由 url(r"", include("app.urls")), //引用应用中的路由 ] // app.urls子应用中使用url from django.conf.urls import url from app import views urlpatterns = [ url(r"^login/#39;, app .login), ] // path模块应用 from django.urls import path,include urlpatterns = [ path("admin/", admin.site.urls), //直接定义路由 path("", include("app.urls")), //引用应用中的路由 ] // app.urls子应用中使用path from django.urls import path from app import views urlpatterns = [ path("login/", app.login), ] >redis-cli.exe 127.0.0.1:6379> auth 123456 O 127.0.0.1:6379> hget person name "jack"
韩国人估计没想到,现代居然买了宁德时代的CTP授权关注并标星电动星球News每天打卡阅读更深刻理解汽车产业变革出品电动星球News作者毓肥上周星期三,宁德时代搞了个事情。10月27日,宁德时代与现代摩比斯签署技术许可与合作意向协议
特斯拉Q3财报30。5利润率捅破天花板,下一款车2023年发布关注并标星电动星球News每天打卡阅读更深刻理解汽车产业变革出品电动星球News作者毓肥不出意料地,马斯克并没有出席特斯拉2021Q3财报会议。这是他在Q2会议上就已经预告的如果没
毛巾架选对了,卫生间舒适感倍增卫生间装修时大部分的人会忽略毛巾架的选择和安装,认为毛巾架这个物件可有可无,随意安装便可。其实不然,毛巾架除了挂放毛巾以外,还影响到整个卫生间的便利性和舒适性。一旦没选好,或者毛巾
皮革家居的魅力,看一眼就沦陷有皮革元素的家,往往怀旧中带着令人瞩目的高级感,虽然看起来特立独行,但运用好了却能展现极强的包容性,能在家居中游刃有余的与各种元素相互搭配,相互衬托。并且它的纹理和质感,有着提升空
家居建材行业,有哪些获客渠道,能让成交水到渠成随着家居,装修设计货运物流和电子商务环境的日趋健全,家居品牌的竞争力从地区市场竞争扩展为各省区域的市场竞争,一些以降低成本为核心竞争力的知名品牌发觉总是能找出比自身价钱还低的相近竞
安防周看点智能家居新连接标准MatterZigbee联盟更名一周热点亚马逊苹果等合作发起智能家居新连接标准Matter5月12日消息,苹果亚马逊和谷歌等大型科技公司组成的连接标准联盟宣布推出一个用于智能家居设备的新连接标准Matter,第一
浅析关于智能家居标准建设前言近年来,随着科技的迅速发展,AIoT的概念开始盛行,智能家居产业进入了一个全新的发展时期。智能家居的标准如何定义?怎样才能称之为智能?未来智能家居行业的发展趋势是什么?智能家居
智能家居成为刚需,要解决什么?智能家居建设是一个整体的概念,全屋智能才是真正完成了智能家居,毕竟单一产品很难形成物联网的效果。正如蓝牙联盟高级开发者关系经理孙啸所说,目前市场上多数家居品牌产品碎片化,实现全屋智
在Mac上安装ElasticsearchElasticsearch简介Elasticsearch是一个用Java开发的开源全文搜索引擎。用户上传JSON格式的数据集。然后,Elasticsearch在向集群索引中的文档添
强大的抓包工具mitmproxy对于抓包工具,我刚开始从Charles(青花瓷抓包工具)开始的,虽然说功能还是特别的强大。如何给抓到数据存入到数据库中呢,这里我推荐一下mitmproxy。安装在Mac安装mitm
十分钟了解Mongodb数据库前言本文可能比较长,主要分为3个部分。1。mongodb的简介。2。mongodb的安装。3。mongodb查询指令,大家可以根据选择进行阅读。1。2什么是MongoDBMongo