Forráskód Böngészése

feature:
发送增加redis缓存功能

chenjunkai 5 éve
szülő
commit
2acb8b3fa1
3 módosított fájl, 99 hozzáadás és 4 törlés
  1. 11 2
      controller/index.py
  2. 86 0
      object/RedisObject.py
  3. 2 2
      service/CommonService.py

+ 11 - 2
controller/index.py

@@ -23,7 +23,7 @@ import subprocess
 from model.models import UserModel, UidRtspModel
 from object.tkObject import tkObject
 from service.CommonService import CommonService
-
+from object.RedisObject import RedisObject
 
 SERVER_PREFIX = 'http://www.dvema.com'
 
@@ -191,7 +191,12 @@ class oa2RtspStartView(TemplateView):
         '''
         access_token = request_dict.get("access_token", '')
         id = request_dict.get("id", '')
-
+        redisObj = RedisObject(db=9)
+        key = '{UID}_rtsp_key'.format(UID=id)
+        redis_data = redisObj.get_data(key=key)
+        if redis_data:
+            res_json = eval(redis_data)
+            return JsonResponse(res_json, safe=False)
         user_qs = UserModel.objects.filter(access_token=access_token)
         if user_qs.exists():
             userID = user_qs[0].userID
@@ -220,6 +225,7 @@ class oa2RtspStartView(TemplateView):
                 'authorizationTypes': ['NONE'],
                 'uri': 'rtsp://rtsp.zositech.xyz:443/{stream_name}'.format(stream_name=ur_qs[0]['rtsp_url'])
             }
+            redisObj.set_data(key=key,val=str(res_json))
             return JsonResponse(res_json, safe=False)
         else:
             return JsonResponse({'msg': 'wrong'})
@@ -234,6 +240,9 @@ class oa2RtspStartView(TemplateView):
         return
 
 
+
+
+
 class oa2DiscoveryDevice(TemplateView):
     def post(self, request, *args, **kwargs):
         request.encoding = 'utf-8'

+ 86 - 0
object/RedisObject.py

@@ -0,0 +1,86 @@
+#!/usr/bin/env python3  
+# -*- coding: utf-8 -*-  
+"""
+@Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
+@AUTHOR: ASJRD018
+@NAME: AnsjerOA
+@software: PyCharm
+@DATE: 2018/8/8 17:00
+@Version: python3.6
+@MODIFY DECORD:ansjer dev
+@file: RedisObject.py
+@Contact: chanjunkai@163.com
+"""
+import redis
+
+
+# REDIS_ADDRESS = '192.168.136.45'
+REDIS_ADDRESS = '127.0.0.1'
+
+'''
+db=3  -> 统计在线人数用
+'''
+
+
+class RedisObject:
+
+    def __init__(self, db=0):
+        self.POOL = redis.ConnectionPool(host=REDIS_ADDRESS, port=6379, db=db)
+        self.CONN = redis.Redis(connection_pool=self.POOL)
+
+    def set_data(self, key, val, expire=0):
+        try:
+            self.CONN.set(key, val)
+            if expire > 0:
+                self.CONN.expire(key, expire)
+        except Exception as e:
+            return False
+        else:
+            return True
+
+    def get_data(self, key):
+        try:
+            val = self.CONN.get(key)
+        except Exception as e:
+            print(repr(e))
+            return False
+        else:
+            if val:
+                return val.decode('utf-8')
+            else:
+                return False
+
+    def del_data(self, key):
+        try:
+            val = self.CONN.delete(key)
+        except Exception as e:
+            print(repr(e))
+            return False
+        else:
+            return True
+
+    def get_size(self):
+        return self.CONN.dbsize()
+
+    # 向列表插入数据
+    def rpush(self, name, val):
+        self.CONN.rpush(name, val)
+
+    # 获取列表长度
+    def llen(self, name):
+        return self.CONN.llen(name=name)
+
+    # 获取列表所有数据
+    def lrange(self, name, start, end):
+        return self.CONN.lrange(name, start, end)
+
+    def get_ttl(self, key):
+        ttl = self.CONN.ttl(key)
+        if ttl:
+            return ttl
+        else:
+            return 0
+
+# redisObj = RedisObject()
+# res = redisObj.set_data(key='ksdjkjkl',val='asdjfklsadj;lf',expire=3600)
+# print(res)

+ 2 - 2
service/CommonService.py

@@ -42,5 +42,5 @@ class CommonService:
             str += characterSet[random.randint(0, length)]
         return str
 
-data = CommonService.encrypt_data(20)
-print(data)
+# data = CommonService.encrypt_data(20)
+# print(data)