django使用redis

django_redis

下载

>: pip install django-redis

 

说明

 

django连接django_redis后会顶替原memcache数据库
django使用django_redis缓存数据库是通过内存管理来操作,所以需要导入django的内存管理cache

补充:
原生redis不能存储drf序列化的结果,因为其结果不是字符串类型,所以使用django_redis
可以将django_redis理解为是redis的辅助工具,可以将drf序列化后的结果存入redis库中

 补充知识: django内存管理

from django.core.cache import cache

# 内存中设置值
cache.set(key, value, exp)
# 取值
cache.get(key)

注:默认操作的是django的memcache内存数据库

 使用

配置: settings/dev.py
# 缓存配置 - redis存储:依赖 django-redis
CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/7",  # 连入指定数据库 这里连接的是7号数据库
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
            "CONNECTION_POOL_KWARGS": {"max_connections": 100}  # 最大连接数
        }
    }
}

 

 

import os, django
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "luffyapi.settings.dev")
django.setup()


from django.core.cache import cache
from user.models import User
from rest_framework.serializers import ModelSerializer

class UserModelSerializer(ModelSerializer):
    class Meta:
        model = User
        fields = ['username', 'password']
# 获取用户对象
user_obj = User.objects.all().first()
# 序列化
user_data = UserModelSerializer(user_obj).data
print(user_data)
# {'username': 'admin', 'password': 'pbkdf2_sha256$0oIWjJbH98M$tbYJl1ja25oSXOxv8WW8I8fxsb3/tZgbtgcDhUbTyuQ='}
print(type(user_data))  # <class 'rest_framework.utils.serializer_helpers.ReturnDict'>
# 存入redis内存数据库
cache.set(user_obj.username, user_data , 10)  # 参数: key, value, 过期时间/秒
# 取出
res = cache.get(user_obj.username) print(res) # {'username': 'admin', 'password': 'pbkdf2_sha256$IWjJbH98M$tbYJl1ja25oSXOxv8WW8I8fxsb3/tZgbtgcDhUbTyuQ='} print(type(res)) # <class 'dict'>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值