跳到主要内容

· 阅读需 8 分钟
zhangkun

Influxdb语法

1、数据构成

INSERT cpu_load_short,host=server01,region=us-west value=0.64,value2=0.86 1434055562000000000

第一部分:“cpu_load_short,host=server01,region=us-west”

第一部分称为key,key中包含了measurement name(类似表)和tags(tags又分为tag key和tag value,tags可以有多个)

注意:在tag value中的空格应以“”加上空格表示,tags中的值必须是string类型,其实是起到索引的作用

第二部分:“value=0.64,value2=0.86”

第二部分称为Field,同样和tags的形式相同,都是键值对的形式,但是tags中的值必须是string类型,而Field中的值可以为Integer、float、Boolean、string类型,

若为Integer类型,则值后必须加“i”,否则该值为float类型,

比如value=23意味着这个值23是float类型,

· 阅读需 2 分钟
zhangkun

以下是一个使用Python写Word文档的示例代码,需要安装python-docx库:

import docx

# 创建一个新的文档
document = docx.Document()

# 添加标题
document.add_heading('Python写Word文档示例', 0)

# 添加段落
p = document.add_paragraph('这是一个使用Python写Word文档的示例。')

# 添加加粗的文本
p.add_run('这是加粗的文本。').bold = True

# 添加斜体的文本
p.add_run('这是斜体的文本。').italic = True

# 添加列表
document.add_paragraph('这是一个无序列表:', style='ListBullet')
document.add_paragraph('列表项1')
document.add_paragraph('列表项2')
document.add_paragraph('列表项3')

# 添加表格
table = document.add_table(rows=3, cols=3)
cell = table.cell(0, 0)
cell.text = '第一行第一列'
cell = table.cell(0, 1)
cell.text = '第一行第二列'
cell = table.cell(0, 2)
cell.text = '第一行第三列'
cell = table.cell(1, 0)
cell.text = '第二行第一列'
cell = table.cell(1, 1)
cell.text = '第二行第二列'
cell = table.cell(1, 2)
cell.text = '第二行第三列'
cell = table.cell(2, 0)
cell.text = '第三行第一列'
cell = table.cell(2, 1)
cell.text = '第三行第二列'
cell = table.cell(2, 2)
cell.text = '第三行第三列'

# 保存文档
document.save('example.docx')

运行代码后会在当前目录下生成一个名为 example.docx的Word文档。

· 阅读需 5 分钟
zhangkun

一、Protocol Buffer 与 XML、JSON 的区别

  • Protocol Buffer

XML

JSON

一样都是

结构数据序列化

的工具,但它们的数据格式有比较大的区别:

  • 首先,Protocol Buffer 序列化之后得到的数据不是可读的字符串,而是二进制流

  • 其次,XML 和 JSON 格式的数据信息都包含在了序列化之后的数据中,不需要任何其它信息就能还原序列化之后的数据;但使用 Protocol Buffer 需要事先定义数据的格式(.proto 协议文件),还原一个序列化之后的数据需要使用到这个定义好的数据格式

  • 最后,在传输数据量较大的需求场景下,Protocol Buffer 比 XML、JSON 更小(3到10倍)、更快(20到100倍)、使用 & 维护更简单;而且 Protocol Buffer 可以跨平台、跨语音使用

  • Protobuf 安装:

  • Protobuf 版本查看:

    • protoc --version
    • import google.protobuf as gp, gp.__version__

二、Protocol Buffer 的作用

  • 通过将结构化的数据(拥有多种属性)进行序列化,从而实现(内存与硬盘之间)数据存储和交换的功能
    • 序列化: 按照 .proto 协议文件将数据结构或对象转换成二进制流的过程
    • 反序列化:将在序列化过程中所生成的二进制流转换成数据结构或对象的过程

三、构建 Protocol Buffer 消息对象模型

这里写图片描述

1、通过 Protocol Buffer 语法描述需要存储的数据结构

  • Protocol Buffer 定义数据格式的文件一般保存在 .proto文件中,每一个 message代表了一类结构化的数据,message 里面定义了每一个属性的类型和名字
  • 一个消息对象可以将其他消息对象类型用作字段类型,情况如下: 这里写图片描述
# 1、包名
package protocobuff_Demo;

# 2、option 选项
option java_package = "com.carson.proto";
option java_outer_classname = "Demo";


# 3、消息模型
# 3.1、生成 Person 消息对象(包含多个字段)
message Person {
required string name = 1;
required int32 id = 2;
optional string email = 3;

enum PhoneType {
MOBILE = 0;
HOME = 1;
WORK = 2;
}

# 该消息类型定义在 Person 消息类型的内部
# 即 Person 消息类型是 PhoneNumber 消息类型的父消息类型
message PhoneNumber {
required string number = 1;
optional PhoneType type = 2 [default = HOME];
}

# 直接使用内部消息类型
repeated PhoneNumber phone = 4;
}

# 3.2 使用外部消息类型,直接使用了 Person 消息类型作为消息字段
message AddressBook {
repeated Person person = 1;
}
123456789101112131415161718192021222324252627282930313233343536

2、通过 Protocol Buffer 编译器编译 .proto 文件

  • 作用:将 .proto 文件 转换成对应平台(python、C++、Java)的代码文件
  • 编译指令如下所示:
#  在终端输入下列命令进行编译
protoc -I=$SRC_DIR --xxx_out=$DST_DIR $SRC_DIR/addressbook.proto

# 参数说明
# 1. $SRC_DIR:指定需要编译的.proto文件目录 (如没有提供则使用当前目录)
# 2. --xxx_out:xxx根据需要生成代码的类型进行设置
"""
对于 Java ,xxx = java ,即 -- java_out
对于 C++ ,xxx = cpp ,即 --cpp_out
对于 Python,xxx = python,即 --python_out
"""

# 3. $DST_DIR :编译后代码生成的目录 (通常设置与$SRC_DIR相同)
# 4. 最后的路径参数:需要编译的.proto 文件的具体路径

# 编译通过后,Protoco Buffer会根据不同平台生成对应的代码文件
12345678910111213141516

四、参考资料

1、这是一份很有诚意的 Protocol Buffer 语法详解 2、手把手教你如何安装 Protocol Buffer

· 阅读需 2 分钟
zhangkun

liunx 如果想写一段自动执行的脚本,并且系统如果提示输入密码等一些信息时,可以将执行的脚本写到 1.sh 的文件中。

#!/bin/bash
set timeout 30
rm -rf <文件夹>
git clone git@127.0.0.1:/home/gitrepo/xxxx.git


· 阅读需 1 分钟
zhangkun
server {
listen 80;
listen [::]:80;
server_name www.xxxx.com;
return 301 https://server_nameservernamerequest_uri;
}

· 阅读需 1 分钟
zhangkun

Docusaurus 命令行工具包括:

  1. docusaurus init:使用模板创建新的 Docusaurus 网站。
  2. docusaurus start:以开发模式启动本地服务器,以便在本地预览文档内容。
  3. docusaurus build:构建静态网站,以准备发布到生产环境。
  4. docusaurus deploy:发布构建的静态网站到指定的发布服务,如 GitHub Pages、Netlify 等。
  5. docusaurus serve:以生产模式启动本地服务器,以便在本地预览静态网站内容。

· 阅读需 3 分钟
zhangkun

一直想搭建一个自己的私有 git 服务器,主要是想让自己的代码在 push 后,自动运行。

有了这个想法马上就干。首先是要有一台自己的服务器。然后就是安装 git,按照网上的教程,一步一步来:

1、安装 Git

$ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
$ yum install git

接下来我们 创建一个 git 用户组和用户,用来运行 git 服务:

· 阅读需 6 分钟
zhangkun

今天听 B 站的音乐,都是 up 主精心制作的音乐,非常好听。

想如何能下载到我的电脑上慢慢听呢,于是在网上找了半天,终于让我找到了一个 python 写的爬虫程序,稍加改动后成功将音乐和视频下载了下来。

· 阅读需 1 分钟
zhangkun
sidebar_position: 1

关于我

提示

人生如大江,过往皆小浪。

信息

人生如大江,过往皆小浪。

危险

人生如大江,过往皆小浪。

警告

人生如大江,过往皆小浪。

备注

人生如大江,过往皆小浪。