Django操作redis
一、环境安装
基本环境:
Python环境:Python 3.8.16
Django环境:4.1
redis环境:参考搭建 https://www.cnblogs.com/yclh/p/14742336.html
并且已经添加了myApp的应用
安装redis的包:
pip install django-redis
二、配置文件
打开Django的配置文件,比如说setting.py,里面设置CACHES项
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},#连接池
"SOCKET_CONNECT_TIMEOUT": 5, # 连接redis超时时间,单位为秒
"SOCKET_TIMEOUT": 5, # redis读写操作超时时间,单位为秒
# "PASSWORD": "123",
}
}
}
三、myApp里配置路径和编写view的方法
1、配置路径

2、编写view的方法

from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
#1 使用cache(推荐使用这种方法)
from django.core.cache import cache def index(request):
cache.set("oneName", "张三")
#timeout是有效期 单位是秒
cache.set("TwoName", "lisi", timeout=5)
print(cache.get("oneName"))
print(cache.get("TwoName"))
return HttpResponse('设置成功') #2 直接使用conn对象(不推荐,但是也可以用)
from django_redis import get_redis_connection def my(request):
redis_conn = get_redis_connection("default")
redis_conn.set("id", "hello")
print(redis_conn.get("id")) # 查看目前已创建的连接数量
connection_pool = redis_conn.connection_pool
print(connection_pool._created_connections)
return HttpResponse('设置成功')
四、验证效果
注:结合控制台的输出,验证从redis里取数据
1、进入redis客户端
127.0.0.1:6379> keys *
(empty list or set)
没有主键信息
2、浏览器访问http://127.0.0.1:8000/redis/test
127.0.0.1:6379> keys *
1) ":1:TwoName"
2) ":1:oneName"
有两个key了,过5秒钟在次查看
127.0.0.1:6379> keys *
1) ":1:oneName"
TwoName过期就从redis里自动删除了
3、浏览器访问http://127.0.0.1:8000/redis/other
127.0.0.1:6379> keys *
1) "id"
2) ":1:oneName"
说明view里写的两种方式都可以操作redis
Django操作redis的更多相关文章
- Django day 34 过滤课程,登录,redis,python操作redis
一:过滤课程, 二:登录 三:redis, 四:python操作redis
- python——操作Redis
在使用django的websocket的时候,发现web请求和其他当前的django进程的内存是不共享的,猜测django的机制可能是每来一个web请求,就开启一个进程去与web进行交互,一次来达到利 ...
- 数据库之redis篇(3)—— Python操作redis
虽然前面两篇已经说了redis的一些配置安装什么的,篇幅有点长,可能看完了也不知道怎么操作,这里再浓缩一下: 什么是redis redis完全开源免费的,遵守BSD协议,是一个高性能的非关系型key- ...
- django - 总结 - redis缓存
八.redis 补充- 操作 - 增删改查 对字典,重新设计结构,增删改查. hmset keys hget scan_iter hgetall import redis import j ...
- redis的使用与 django的redis的使用
1. 使用redis数据库分为两种: 第一种是在python语言中直接使用的方式, 第二种就是在django中使用django_redis模块来数用 第一种直接在python语言中使用redis im ...
- Redis常用操作大全和Python操作Redis
简单使用 utils.py import redis POOL=redis.ConnectionPool(host='127.0.0.1',port=6379) view.py 第一种方式 (通用方式 ...
- django做redis缓存
django中应用redis:pip3 install django-redis - 配置 CACHES = { "default": { "BACKEND": ...
- edis 以及 Python操作Redis
Redis 以及 Python操作Redis Redis Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis有以下特点: -- Redis支持数据的持 ...
- Django中redis的使用方法(包括安装、配置、启动)
一.安装redis: 1.下载: wget http://download.redis.io/releases/redis-3.2.8.tar.gz 2.解压 tar -zxvf redis-3.2. ...
- Redis - Python操作Redis
目录 Python操作Redis 一. Redis安装和基本使用 二. Python操作Redis API使用 1.操作模式 2.连接池 3.Django配置Redis 4.操作 Python操作Re ...
随机推荐
- 下午小博(java小知识)
抽象类: 抽象类中可以构造方法 抽象类中可以存在普通属性,方法,静态属性和方法 抽象类中可以存在抽象方法如果一个类中有一个抽象方法,那么当前类一定是抽象类:抽象类中不一定有抽象方法 抽象类中的抽象方法 ...
- Navicat 15 or 16 永久版本(window和Mac)
一.下载Navicat Premium 官网https://www.navicat.com.cn/下载最新版本下载安装 链接包含(window激活包和Mac版本,请选择性下载): https://no ...
- 视觉SLAM:滑动窗口
1.SLAM问题 1.1建模 考虑某个状态 \(\xi\),以及一次与该变量相关的观测 \(r_{i}\).由于噪声存在,观测服从概率分布 \(p(r_{i}|\xi)\).多个观测时,各个测量值相互 ...
- Java对象布局
1. 引言 由于Java面向对象的思想,在JVM中需要大量存储对象,存储时为了实现一些额外的功能,需要在对象中添加一些标记字段用于增强对象功能 .在学习并发编程知识synchronized时,我们总是 ...
- 全局视角看技术-Java多线程演进史
作者:京东科技 文涛 全文较长共6468字,语言通俗易懂,是一篇具有大纲性质的关于多线程的梳理,作者从历史演进的角度讲了多线程相关知识体系,让你知其然知其所以然. 前言 2022年09月22日,JDK ...
- ps4双手柄inputManager设置
ps4键位 https://blog.csdn.net/egostudio/article/details/51463819 xbox键位 http://www.360doc.com/content/ ...
- input标签file文件上传图片本地预览(转载)
<input type="file" name="img-up" id="img-up" value="" /&g ...
- No.2.7
响应式 什么是响应式网页?就是一套代码适配不同的屏幕宽度,不同的适配 媒体查询:能够根据设备宽度的变化,设置差异化样式 开发常用写法: 媒体特性常用写法 max-width min-width @me ...
- vue3 使用watch 监听多个数据
// 监听时间选择 watch( [ internalSubmTimer, internalTimer, externalSubmTimer, externaTimer, callbackTimer, ...
- RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cpu!
错误原因:数据有的在cpu上有的在gpu上debug:断点到出错位置查看类型,或者打印`x.is_cuda`查看修改:将cpu上的数据通过`.to(device)`加载到gpu上