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)
posted @   巫小诗  阅读(220)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示