码迷,mamicode.com
首页 > 编程语言 > 详细

Python 操作Redis

时间:2019-03-27 11:22:30      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:操作   def   cli   一个   utils   logs   lex   pre   location   

一 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=1234,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()
技术图片

 

Python 操作Redis

标签:操作   def   cli   一个   utils   logs   lex   pre   location   

原文地址:https://www.cnblogs.com/gyh412724/p/10605501.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!