zoukankan      html  css  js  c++  java
  • django-redis 使用

    Django-redis 使用

    • 安装 django-redis

      pip install django-redis
      
    • 配置信息

      CACHES = {
          "default": {
              "BACKEND": "django_redis.cache.RedisCache",
              "LOCATION": "redis://127.0.0.1:6379/8",
              "OPTIONS": {
                  "CLIENT_CLASS": "django_redis.client.DefaultClient",
                  "CONNECTION_POOL_KWARGS": {"max_connections": 100},
                  # "PASSWORD": "密码",
        		  'CONNECTION_POOL_KWARGS': {'decode_responses': True}, # 添加这一行,数据正常返回,否则将以bytes返回
              }
          }
      }
      
    • 使用 views.py

      from django.core.cache import cache
      from rest_framework.views import APIView
      from rest_response import Response
      
      class OrderViews(APIView):
          # 读取缓存信息
          def get(self,request):
              tmp = cache.get('key')
              return Response({
                  "res":200,
                  "msg":"",
                  "data":tmp
              })
          # 设置缓存信息
          def post(self,request):
              # 设置成功返回True,否则返回False
              tmp = cache.set('key','value',10)
              return Response({
                  "res":200,
                  "msg":"设置成功"
              })
      
    • 使用views.py

      from django.core.cache import cache
      from rest_framework.views import APIView
      from rest_response import Response
      from django_redis  import  get_redis_connection
      # 购物车
      class CartViews(APIView):
          # 初始化参数
          def __init__(self):
              self.conn = get_redis_connection('default')
              
          
          # 设置缓存信息
          def post(self,request):
              tmp = self.conn.hset('cart_1',2,{'name':'oppo30pro','price':5999,'count':1})
      		if tmp:
                  return Response({
                      "res":200,
                      "msg":"缓存设置成功"
                  })
              return Response({
                  "res":201,
                  "msg":"缓存设置失败"
              })
          
          
          
          # 读取缓存
          def get(self,request):
              data = self.conn.hgetall('cart_1')
              return Response({
                  "res":201,
                  "msg":"",
                  "data":data
              })
      
    • url.py

      from django.urls import path,include
      from . import views
      urlpatterns = [
          path('cache/',views.OrderView.as_view()),
      ]
      
    • 关于hash还有其他获取值的方式

      • hgetall(name) 取出name对应hash的所有键值
      • hlen(name)获取对应的hash中键值对的个数
      • hkeys(name)返回所有key
      • hvals(name)返回所有value
      • hexisits(name,key)判断这个hash的key在不在
      • hdel(name,*keys)删除指定的键值对
      • hinrby(name,key,amount=1)
  • 相关阅读:
    Tomcat Manager用户配置详解
    自动更新Chromium
    如何方便快速在指定文件夹打开命令行
    让Chrome 接管邮件连接,收发邮件更方便了
    Chrome扩展程序的二次开发:把它改得更适合自己使用
    更改Photoshop 语言为英语(无需语言包)
    Chrome 控制台新玩法-console显示图片以及为文字加样式
    JavaScript—之对象参数的引用传递
    jQuery 绑定事件到动态创建的元素上
    JavaScript –类型之我晕
  • 原文地址:https://www.cnblogs.com/wuxiaoshi/p/11723306.html
Copyright © 2011-2022 走看看