$Django python中使用redis, django中使用(封装了),redis开启事务(管道)
一 Python操作Redis之普通连接
#先安装 pip3 install redis
import redis r = redis.Redis(host='127.0.0.1', port=6379)
r.set('foo', 'Bar')
print(r.get('foo'))
二 Python操作Redis之连接池
#使用connection pool来管理对一个redis server的所有连接,避免每次建立、释放连接的开#销。默认,每个Redis实例都会维护一个自己的连接池。可以直接建立一个连接池,然后作为#参数Redis,这样就可以实现多个Redis实例共享一个连接池
import redis pool = redis.ConnectionPool(host='127.0.0.1', port=6379)
r = redis.Redis(connection_pool=pool)
r.set('foo', 'Bar')
print(r.get('foo'))
三 Django中使用redis
方式1:(所有框架通用)
建立redis_pool.py
import redis
POOL = redis.ConnectionPool(host='127.0.0.1', port=6379,password='',max_connections=1000)
视图函数使用
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('获取成功')
方式2:(django自己封装的)
安装django-redis模块
pip3 install django-redis
setting里配置:
# 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": "123",
}
}
}
注意:设置了redis配置,此时建立的缓存会存在redis里面
视图函数
from django_redis import get_redis_connection
conn = get_redis_connection('default')
print(conn.hgetall('xxx'))
四 redis开启事务
redis-py默认在执行每次请求都会创建(连接池申请连接)和断开(归还连接池)一次连接操作,如果想要在一次请求中指定多个命令,则可以使用pipline实现一次请求指定多个命令,并且默认情况下一次pipline 是原子性操作
import redis pool = redis.ConnectionPool(host='10.211.55.4', port=6379) r = redis.Redis(connection_pool=pool) # pipe = r.pipeline(transaction=False)
pipe = r.pipeline(transaction=True)
pipe.multi()
pipe.set('name', 'alex')
pipe.set('role', 'sb') pipe.execute()
随机推荐
- js把变量转换成json数据
var a="";var MessageList=JSON.stringify(a);
- MINIST深度学习识别:python全连接神经网络和pytorch LeNet CNN网络训练实现及比较(三)
版权声明:本文为博主原创文章,欢迎转载,并请注明出处.联系方式:460356155@qq.com 在前两篇文章MINIST深度学习识别:python全连接神经网络和pytorch LeNet CNN网 ...
- Ubuntu shutdown
gsettings set com.canonical.indicator.session suppress-logout-restart-shutdown true
- Python pip Unable--
It is possible that pip does not get installed by default. One potential fix is: python -m ensurepip ...
- Red Hat Enterprise Linux AS4, C++ OCCI connect Oracle 9i
前提是已经安装好Oracle 9i. 1. 下载对应的ORACLE client安装. http://www.oracle.com/technetwork/database/features/inst ...
- Java集合:HashMap底层实现和原理(源码解析)
Note:文章的内容基于JDK1.7进行分析.1.8做的改动文章末尾进行讲解. 一.先来熟悉一下我们常用的HashMap: 1.概述 HashMap基于Map接口实现,元素以键值对的方式存储,并且允许 ...
- 安卓微信连接fiddler等抓包工具无法抓取https
问题描述: 在手机连接pc的fiddler后,安卓微信打不开https页面,安卓的浏览器.qq等都可以正常访问https,ios也都可以,就只有安卓微信放问https是空白页面 解决思路: 一. 证书 ...
- 解决mysql表不能查询修改删除等操作并出现卡死
问题现象1:进程wait卡住 测试环境mysql出现了一个怪表:select查询表卡死,alter修改表卡死,甚至我不想要这个表了,delete.truncate.drop表都卡死卡主了...... ...
- centos7修改网卡名称为eth0
原文链接:https://www.cnblogs.com/freeblogs/p/7881597.html 在安装系统的时候配置: 修改内核选项:net.ifnames=0 biosdevname=0 ...
- pc安装完成charles成功,小米安装crt证书失败
问题描述: 今天在学习爬虫爬取APP内容时,需要安装crt证书.根据静谧大大的书,前面都挺顺利的.但在我的小米手机上安装crt证书时,出现了错误.手机显示无法安装. 解决之道: 1.不要用小米手机自带 ...