一、数据如何存储方案讨论
1、一个服务存所有主机
2、一台主机的所有服务
3、所有的服务一分钟存一次?
数据量大,浏览器会卡住,
4、最终方案如下
二、解决方案存在问题
1、只能存7天如何处理?
超过一个周就10分钟的平均值,存1个月
2、四种数据如何存?你存的是最近7天的数据
1、看追加时间,左边第一个值,每次存数据的同时把第一个值取出来,判断有没有超过7天拆过就删除
2、先初始一个值
3、存一个月的数据都是被这10分钟平均了的,这个应该什么时候存?
每新增10个就往里面存一个,
4、我咋知道几分钟存一个值?
1、刚开始初始10个值,初始了一个时间戳,
2、从列表找一个,判断列表的长度
5、存多少个点的数据
STATUS_DATA_OPTIMIZATION = { 'latest':[0,100080], #0 存储真实数据,600个点 '10mins':[600,4320], #1m, 每600s进行一次优化,存最大600个点 '30mins':[1800,4320],#3m '60mins':[3600,8760], #365days }
1、如果是0代表不优化,直接往里面存
2、存多少?
超过10080就删除
3、遇到600就代表可以优化
1、找到10分种的列表
2、从最右边的值找到时间戳判断有没有超过600继续存,需要再优化
三、redis配置
1、配置文件
1、settings
REDIS_CONN = { 'HOST':'192.168.16.126', 'PORT':6379, 'DB':0, }
2、api_views
REDIS_OBJ = redis_conn.redis_conn(settings)
3、redis_conn
def redis_conn(django_settings): #print(django_settings.REDIS_CONN) pool = redis.ConnectionPool(host=django_settings.REDIS_CONN['HOST'], port=django_settings.REDIS_CONN['PORT'], db=django_settings.REDIS_CONN['DB']) r = redis.Redis(connection_pool=pool) return r
注意事项:连接池必须连接指定DB
2、redis配置
1、控制台报“目标计算机积极拒绝”如何处理?
设置允许远程主机连接问题解决
bind 0.0.0.0
2、设置redis密码
requirepass luoahong
3、遇到到的坑
1、400报错截图
在配置文件里添加如下一行问题解决
ALLOWED_HOSTS = ["*"]
2、403错误
api_views在中加入以下内容:
from django.views.decorators.csrf import csrf_exempt
403错误处理后截图