使用redis连接池操作数据库

连接redis数据库可以是redis的可视化软件RedisDesktopManager,或者用终端命令行redis-cli -h ip -p 端口 -a 密码,在python代码中主要有三种方式连接redis。

方式一:用redis模块连接

import redis
# 直接连接redis
conn = redis.Redis(host='10.211.55.28', port=6379, password='foobared', encoding='utf-8')
# 设置键值:15131255089="9999" 且超时时间为10秒(值写入到redis时会自动转字符串)
conn.set('15131255089', 9999, ex=10)
# 根据键获取值:如果存在获取值(获取到的是字节类型);不存在则返回None
value = conn.get('15131255089')
print(value)

上面python操作redis的示例是以直接创建连接的方式实现,每次操作redis如果都重新连接一次效率会比较低,建议使用redis连接池来替换,连接池时专门用来处理并发请求,来一个请求后台直接能给出池里的连接对象来操作数据库,例如:

方式二:redis模块 + 连接池(推荐方式)

import redis
# 创建redis连接池(默认连接池最大连接数 2**31=2147483648)
pool = redis.ConnectionPool(host='10.211.55.28', port=6379, password='foobared', encoding='utf-8', max_connections=1000)
# 去连接池中获取一个连接
conn = redis.Redis(connection_pool=pool)
# 设置键值:15131255089="9999" 且超时时间为10秒(值写入到redis时会自动转字符串)
conn.set('name', "xxx", ex=10)
# 根据键获取值:如果存在获取值(获取到的是字节类型);不存在则返回None
value = conn.get('name')
print(value)

方式三:使用django-redis,在django中方便的使用redis(利用django进行web开发时建议使用)。

第一步

pip3 install django-redis

第二步

CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://10.211.55.28:6379", # 安装redis的主机的 IP 和 端口
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
            "CONNECTION_POOL_KWARGS": {
                "max_connections": 1000,
                "encoding": 'utf-8'
            },
            "PASSWORD": "foobared" # redis密码
        }
    },
    # 如果你需要用连接池连上多台redis节点,以后你在做主从读写分离,就会用到这个,get_redis_connection中的参数,就是
    # 按照这个redis名,default或者master在视图中就能直接使用这里连接好的
     "master": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://10.211.55.28:6379", # 安装redis的主机的 IP 和 端口
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
            "CONNECTION_POOL_KWARGS": {
                "max_connections": 1000,
                "encoding": 'utf-8'
            },
            "PASSWORD": "foobared" # redis密码
        }
    }
}

第三步,在视图中使用

from django.shortcuts import HttpResponse
from django_redis import get_redis_connection
def index(request):
    #去连接池中获取一个连接,默认就是default,可以直接()
    conn = get_redis_connection("default")
    conn.set('nickname', "xxx", ex=10)
    value = conn.get('nickname')
    print(value)
    return HttpResponse("OK")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值