redis数据库如何用Django框架缓存数据

---恢复内容开始---

  一.python 使用redis

   1.1 安装 pip install redis 

    测试有一些基本的数据类型

import redis
# redis 是一个缓存数据库

# r = redis.Redis(host='127.0.0.1', port=6379)
# 一般采用host与redis 可以不用配置, 用db来选择操作的数据库

# 如:
r = redis.Redis(db=11)
# r.set() 设置值 操作字符串

r.set('name','coco')
print(r.get('name'))

# 设置过期时间
# r.setex('age', 5, '18')  # 不能一置打开代开 会重新设置
print(r.get('age')) # 5 秒后None

   hset() 哈希字典

# hset
# print(r.get('age')) # 5 秒后None
r.hset('student','name','yye')  # name key value 哈希字典的设置值和取值方法
print(r.hget('student','name'))

  zdd() >>>zset() sorted set() 有序集合

# zadd()
# r.zadd('mayup',{'koko':100,'coco':60,'yye':80})  # 有序集合
# print(r.zrange('mayup',0,0))  # 正向取值 [b'coco']
# print(r.zrevrange('mayup',0,0))  # 取得最后一个 [b'koko']

  1.2 redis 建立连接池

    (1)第一种方式 

# redis 原生的建立连接池(支持并发)
pool = redis.ConnectionPool(db=12,max_connections=100)
rp = redis.Redis(connection_pool=pool)
rp.set('name','koko')
print(rp.get('name'))

    (2) django 使用redis缓存 

  

# 导入测试环境
import os
import django

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

from user import models

user = models.User.objects.first()
# 测试子自定义序列化类
from rest_framework.serializers import ModelSerializer


class UserModelSerializer(ModelSerializer):
    class Meta:
        model = models.User
        fields = ['username', 'password']


user_data = UserModelSerializer(user).data
# print(user_data)
# 原生redis
# import redis
# r = redis.Redis()
# r.set(user.usernaem,user_data)

from django.core.cache import cache  # >>> 
# cache.set()  # vdef set(self, name, value, ex=None, px=None, nx=False, xx=False):
# cache.get()  #  cache 是一个高速缓存器
cache.set(user.username,user_data,5)
res = cache.get(user.username)
print(res, type(res))
# {'username': 'admin', 'password': 'pbkdf2_sha256$1000dcKSQ='}
# <class 'dict'>  序列化成字典的格式进行存储

# 如和进行数据的存储 现在是默认存储到mameche 需要进行配置存储到我们redis 数据库的缓存
# cache比原生的redis 的好处: (1)djano 和drf份序列化结构
# (2) 如果是普通的json格式 我们就序列化成json格式的字符串
# (3)如果是图片的我们通过图片格式度成二进制

   settings  >>>dev开发环境下进行配置

# import logging  测试的话导入一下
# logging.getLogger('django')

 # 配制redis 缓存是用:需要额外的安装django-redis
 # 步骤: (1) 将缓存存储位置配置到redis 中

CACHES = {
    'default':{
        'BACKEND':'django_redis.cache.RedisCache',
        'LOCATION':'redis://127.0.0.1:6379/10',
        'OPTIONS':{
            'CLIENT_CLASS':'django_redis.client.DefaultClient',
            'CONNECTION_POOL_KWARGS':{'max_connections':100}

        }
    }

}

  

---恢复内容结束---

猜你喜欢

转载自www.cnblogs.com/mofujin/p/11769042.html