Django -- Django ORM
Django自带ORM的语法交互模式进入方式12# 自动
123456# 手动import osos.environ.setdefault("DJANGO_SETTINGS_MODULE", "resop.settings_firefly")from django.core.wsgi import get_wsgi_applicationapplication = get_wsgi_application()from orm.cloud.models import GIC
查询123456789101112131415161718192021222324252627282930313233343536373839404142434445from django.db.models import Qquery_sql = Q(is_valid=1)if route_id: query_sql &= Q(route_id=route_id)if site_id: query_sql &= Q(vrrp__site_id= ...
Kafka -- 一、初识Kafka
初识Kafka发布与订阅消息系统
业务开始的时候只是简单的想收集一些数据指标,但随着业务扩展和需要收集的指标维度增加,这个简单的数据收集也变得复杂
混沌的发布与订阅
为了解决这个混沌的系统,创建了一个独立的服务来接收各个业务的数据,并为下游提供查询服务,于是成了下面的样子
但是问题又来了,别的同事也有类似的需求,也在做同样的事情,数据被重复的处理
KafkaKafka就是一个独立的发布订阅系统,为了解决上述的问题,简单的说,Kafka支持对同一个数据流的多个发布者和多个订阅者(重复消费),下面介绍一些基础概念
消息和批次
消息:Kafka的数据单元,也可以看作是数据库中的一行数据,不过Kafka中消息没有格式要求
批次:一组消息,如果每个消息都单独的进行发送网络开销比较大,所以同一个主题和分区的消息会分批次的发送,所以在Kafka中不需要手动的进行批量推送(mysql就没有这个优化),不过会带来数据延时的问题,需要做平衡
模式:上面提到Kafka的消息没有格式上的要求,所以搞了个模式来定义消息内容,关系到数据的序列化、解析之类操作方式,所以不同的模式之间不一定兼容,常用的模式是 ...
Redis管理命令
Redis内存管理info memory在进入redis命令行后执行info memory即可看到redis内存使用状态,这个是看总体的状态
bigkeys命令1redis-cli -p 8090 --bigkeys
通过bigkeys命令可以统计出每个类型下数据规模最大的key(只有sting类型是空间占用最大)
MEMORY usage1MEMORY usage key_name
通过这个命令可以看到一个key的内存占用大小,这个命令是会取5个key-value计算平均大小,再乘上规模来进行的预估
monitor直接在命令行执行monitor即可,但是开启这个监控会影响性能,所以不要后台执行,不用了之后及时退出
Redis内存分析(docker容器版)当发现Redis内存使用异常时,进行分析
bigkeys1234# 宿主机执行docker exec -it redis-test redis-cli -p 6379 --bigkeys -a my_pwd# -p 容器内Redis端口号# -a 输入密码进行验证
前端 -- vue 基础语法
语法记录动态修改元素css12345<div id='warning_chart' style='width:100%;'></div>// 动态设置告警图表高度var obj = document.getElementById("warning_chart");obj.style.height = (res.warning_info.city_list.length*50+100) + 'px';
echarts指定颜色12345678910111213site_option: { tooltip: { trigger: 'item' }, legend: { top: '5%', left: 'center' }, color: ['#91cc75', '#f56c6c'], // 在这里按顺序指 ...
计算机操作系统 -- linux和mac中命令行别名配置
ssh在~/.ssh/config文件中配置,没有就新建一个
12345Host fireflyHostName 119.23.34.118User rootPort 22
zsh使用zsh的时候将配置写入~/.zshrc文件中,下面是别名配置的demo,当然还可以配置路径什么的
123alias ssinit='nohup sslocal -c /etc/shadowsocks/config.json &>> /var/log/sslocal.log &'alias sson='export http_proxy=http://127.0.0.1:8118 && export https_proxy=http://127.0.0.1:8118 && systemctl start privoxy'alias ssoff='unset http_proxy && unset https_proxy && systemctl stop privox ...
计算机操作系统 -- 深入理解计算机系统
第一章:计算机系统漫游1.1 约定
本次分享的内容涉及到的计算机的一些机制都以现在世界上现存的典型协议进行描述,不对一些为特殊场景下进行定制的协议进行阐述,例如我们会认为文本字符在计算机上的表示是通过基础的ASCII标准,涉及到字符存储时不去对别的标准原理进行介绍。
由于第一章里面直接对整个系统的运行进行了笼统的介绍,涉及的内容太多,所有笔记中指名道姓提及本书后续某章会详细讲解的内容和问题,朋友们就别问了,免得大家都尴尬 :)
1.2概述本章我们试图去简单的介绍一个最基本的hello world程序的运行原理,实际上,这一整本书就是在详细的描述这一程序运行过程中计算机各个模块之间的配合调度,以下为hello.c文件内容
#include <stdio.h>
int main()
{
printf("hello world\n");
return 0;
}
1.3 hello world生命周期存储上面的hello.c文件在磁盘上是以一串byte格式进行的存储,当我们用文本工具打开时会翻译为方便人类阅读的格 ...
计算机操作系统 -- 计算机操作系统
一、概述基本特征1. 并发和并行
并发:以前的计算机只有一个核心的时候,想要让多个任务同时执行,一般来说一个程序的运行都是把数据从磁盘写入内存,然后去cpu去取内存中的数据来做计算,计算完成后再输出结果,这个过程中磁盘的读写是相对慢的环节,如果所有的程序都顺序的执行的话,cpu和磁盘这块总有人的空着的,显然效率就很低了,所以要并发的执行,一个程序在读写磁盘的时候另一个程序去使用cpu做运算,一般我们不会去研究磁盘的并发情况,只是关注cpu的并发,并发是指在一段时间内多个程序同时运行,注意在一个时间节点上一定是只有一个程序在占用cpu的(单核),操作系统是通过进程和线程来调度程序的并发。(==为什么不关注磁盘的并发情况==)
并行:这是需要用多核处理器来实现的,即使是在多核的情况下并发也同样重要
linux -- linux下安装mysql(修改root密码)
前因本来在segmentfault上找到一个很好的安装教程,一切也都很顺利,可是修改完root密码之后居然登录不上去了,只好重置root密码,这个过程中发现原来是mysql在一个版本的时候将存储用户密码的字段名给修改了,所以前面第一次对root用户的密码重置其实是有问题的
mysql密码恢复大体流程是先去修改配置文件使得mysql的登录不需要密码,然后用root账户直接登录mysql,进入mysql数据库,用update语句修改user表中root对应的密码
修改MySQL登录设置1vi /etc/my.cnf
在[mysqld]中加入skip-grant-tables保存退出,这个语句使得mysql登录可以不走密码验证
重启mysql服务使刚才的修改生效1/etc/init.d/mysqld restart
登录修改root密码123456/usr/local/mysql/bin/mysql -urootuse mysqlupdate user set authentication_string=password('newPassword') where use ...
linux -- vultr服务器配置
修改密码
1sudo passwd root
搭建ss
在~目录下创建并切换到shadowsocks目录
执行:
123456# 下载wget –no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks.sh# 授权chmod +x shadowsocks.sh# 运行./shadowsocks.sh 2>&1 | tee shadowsocks.log
这里需要配置ss服务的参数:密码、端口、加密方式(建议使用aes-256-cfb)
最后界面上回显示红色标记的内容就是ss的连接信息了
mac -- IDEA家族快捷键
通用
文本内搜索:command+f
文件树中选中文件夹内搜索:command+shift+f
文本内替换:command+r
全局搜索文件:双击shift唤出搜索框(可能会和输入法切换冲突)
折叠代码:command+shift+- (可以选中部分内容进行折叠和展开操作)
展开代码:command+shift++
格式化代码:command+alt+l
切换左右标签:command+shift+{}
跳转文件头尾:command+fn+left/right
回退跳转:command+[]
优化import:control+option+o
Debug
f8 下一步
f7 单步(无函数时同f8)
option + f8 运行到光标所在行
option + f8 测试语句
control + f8 切换断点