日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

时序数据库 InfluxDB

發(fā)布時間:2024/1/8 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 时序数据库 InfluxDB 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

一、介紹

二、安裝

三、inflxudb保留字

四、基本語法

1、客戶端操作

1. 數(shù)據(jù)庫操作

2. 數(shù)據(jù)表和數(shù)據(jù)操作

3. series 操作

4.Shard?

5. 用戶操作

2、API操作

狀態(tài)碼

3、Java操作

五、常用函數(shù)?

六、存儲策略

1.查看策略

2.創(chuàng)建策略

3、修改策略

4. 刪除

七、目錄與文件結(jié)構(gòu)

八、數(shù)據(jù)備份

1、備份和恢復(fù)DB數(shù)據(jù)

一、DB備份

二、DB恢復(fù)

二、備份和恢復(fù)元數(shù)據(jù)

1、備份元數(shù)據(jù)

2、恢復(fù)元數(shù)據(jù)


一、介紹

???????InfluxDB 是一個時間序列數(shù)據(jù)庫,GO 編寫的,旨在處理高寫入和查詢負(fù)載。InfluxDB 旨在用作涉及大量時間戳數(shù)據(jù)的任何用例的后備存儲,包括 DevOps 監(jiān)控、應(yīng)用程序指標(biāo)、物聯(lián)網(wǎng)傳感器數(shù)據(jù)和實時分析。

特點:

  • 專門為時間序列數(shù)據(jù)編寫的自定義高性能數(shù)據(jù)存儲。TSM 引擎允許高速攝取和數(shù)據(jù)壓縮
  • 完全用 Go 編寫。它編譯成一個沒有外部依賴性的二進(jìn)制文件。
  • 簡單、高性能的寫入和查詢 HTTP API。
  • 插件支持其他數(shù)據(jù)攝取協(xié)議,例如 Graphite、collectd 和 OpenTSDB。
  • 專為輕松查詢聚合數(shù)據(jù)而定制的類似 SQL 的表達(dá)查詢語言。
  • 標(biāo)簽允許為系列建立索引以實現(xiàn)快速高效的查詢。
  • 保留策略有效地自動使陳舊數(shù)據(jù)過期。
  • 連續(xù)查詢自動計算聚合數(shù)據(jù),使頻繁查詢更高效。

InfluxDB有三大特性:?
????Time Series (時間序列):你可以使用與時間有關(guān)的相關(guān)函數(shù)(如最大,最小,求和等)? ? ? ??
?? ?Metrics(度量):你可以實時對大量數(shù)據(jù)進(jìn)行計算?
????Eevents(事件):它支持任意的事件數(shù)據(jù)

InfluxDB 提供三種操作方式:

  • 客戶端命令行方式
  • HTTP API 接口
  • 各語言 API 庫
  • InfluxDB 和傳統(tǒng)數(shù)據(jù)庫(如:MySQL)區(qū)別:

    InfluxDB傳統(tǒng)數(shù)據(jù)庫中的概念
    database數(shù)據(jù)庫
    measurement數(shù)據(jù)庫中的表
    points每個表里某個時刻的某個條件下的一個 field 的數(shù)據(jù),因為體現(xiàn)在圖表上就是一個點,于是將其稱為 point。Point 由時間戳(time)、數(shù)據(jù)(field)、標(biāo)簽(tags)組成
    series序列,所有在數(shù)據(jù)庫中的數(shù)據(jù),都需要通過圖表來展示,而這個 series 表示這個表里面的數(shù)據(jù),可以在圖表上畫成幾條線。具體可以通過?SHOW SERIES FROM "表名"?進(jìn)行查詢
    Retention policy數(shù)據(jù)保留策略,可以定義數(shù)據(jù)保留的時長,每個數(shù)據(jù)庫可以有多個數(shù)據(jù)保留策略,但只能有一個默認(rèn)策略

    注意:??point???由3部分組成??time+fields+tags??。

    Point 屬性傳統(tǒng)數(shù)據(jù)庫中的概念
    time每行記錄都有一列time,主索引,記錄時間戳,單位納秒,時區(qū)UTC(東八區(qū)減8小時)
    fields普通列,key-value結(jié)構(gòu),value數(shù)據(jù)類型支持型(float、integer、string、boolean)
    tags索引列,key-value結(jié)構(gòu),value數(shù)據(jù)類型只支持string

    說明

    • 在插入新數(shù)據(jù)時,tag、field 和 time之間用空格分隔?。
    • fields和tags key名稱嚴(yán)格區(qū)分大小寫。

    ?fields數(shù)據(jù)類型:

    類型備注
    floatinfluxdb的fields默認(rèn)是float浮點型
    integer整型,insert語句如需寫入field是整型,需在數(shù)值后面加個i
    string字符串,insert語句如需寫入field是字符串,需英文雙引號包含數(shù)值
    boolean布爾型,真可以用 t , T , true , True , TRUE表示;假可以用 f , F , false , False 或者 FALSE表示

    注意

    ????????在influxdb中,字段必須存在。因為字段是沒有索引的。如果使用字段作為查詢條件,會掃描符合查詢條件的所有字段值,性能不及tag。tags是可選的,但是強(qiáng)烈建議你用上它,因為tag是有索引的,tags相當(dāng)于SQL中的有索引的列。tag value只能是string類型。

    端口

    • 8083:Web admin 管理服務(wù)的端口,?http://localhost:8083
    • 8086:HTTP API 的端口
    • 8088:集群端口 (目前還不是很清楚, 配置在全局的 bind-address,默認(rèn)不配置就是開啟的)

    二、安裝

    docker pull influxdb:1.8.3 docker run -d -p 18083:8083 -p 18088:8088 -p 18086:8086 --name my_influxdb influxdb:1.8.3 docker container update --restart=always my_influxdb

    可視化工具:

    1、web界面?

    2、influxDB Studio?

    客戶端為綠色版,下載解壓打開即可。

    下載地址:Releases · CymaticLabs/InfluxDBStudio

    案例數(shù)據(jù):

    curl https://s3.amazonaws.com/noaa.water-database/NOAA_data.txt -o NOAA_data.txt?

    導(dǎo)入數(shù)據(jù):?

    influx -import -path=NOAA_data.txt -precision=s -database=NOAA_water_database?

    三、inflxudb保留字

    ?

    四、基本語法

    docker exec -it my_influxdb ?bash
    cd /etc/influxdb/
    influx?

    1、客戶端操作

    1. 數(shù)據(jù)庫操作

    # 查看所有數(shù)據(jù)庫

    show databases;

    # 建庫

    create database dbname;

    # 刪庫

    drop database daname

    # 切換使用數(shù)據(jù)庫

    use dbname

    2. 數(shù)據(jù)表和數(shù)據(jù)操作

    查看所有表

    show measurements

    數(shù)據(jù)中的時間字段默認(rèn)顯示的是一個納秒時間戳,改成可讀格式。時間默認(rèn)是UTC時間

    precision rfc3339; # 之后再查詢,時間就是rfc3339標(biāo)準(zhǔn)格式?
    # 或可以在連接數(shù)據(jù)庫的時候,直接帶該參數(shù)
    influx -precision rfc3339

    查看一個measurement中所有的tag key

    show tag keys

    ?查看一個measurement中所有的field key

    show field keys

    查看一個measurement中所有的保存策略(可以有多個,一個標(biāo)識為default)

    ?show retention policies;

    插入數(shù)據(jù)

    ????????標(biāo)準(zhǔn)格式,注意在寫數(shù)據(jù)的時候如果不添加時間戳,系統(tǒng)會默認(rèn)添加一個時間。InfluxDB 中沒有顯式的新建表的語句,只能通過 insert 數(shù)據(jù)的方式來建立新表。

    insert <measurement>[,<tag-key>=<tag-value>...] <field-key>=<field-value>[,<field2-key>=<field2-value>...] [unix-nano-timestamp]insert 表名,tags fileds;

    #插入fields,和tags.

    insert student,a=1,b=2,c=3 name="sa",age=12,emial="xxx@163.com";
    #只插入??fields???,可以沒有??tags
    insert student name="sa",age=12,emial="xxx@163.com";

    刪表

    drop measurement student

    ?查詢?

    SELECT field keys [time | tag kyes | * ] FROM measurements WHERE conditions GROUP BY [tag keys | time] ORDER BY time [asc | desc] LIMIT number [OFFSET number]

  • SELECT??后面查詢顯示字段?必須至少有一個??field key???,否則會拋異常??ERR: at least 1 non-time field must be queried???。還可顯示??tag keys???、??time???,或者??*??顯示所有字段。
  • ??FROM???查詢數(shù)據(jù)來源一個或者多個??measurement??。
  • ??WHERE???查詢條件可為??tag keys???和??time???,??field keys??? 也可作為查詢條件但是不常用,因為不是索引,查詢效率比較低。??tag keys???條件操作符支持??=、!=、<>、正則???,??field keys???支持??=、!=、<>、>、>=、<、<=、正則??。
  • ??GROUP BY???只能對??tag keys???和??time???進(jìn)行合分組,可以多字段排序,如??group by tag1,tag2,time???,也可一個??*???對所有的??tag???進(jìn)行分組聚合(不包括??time??)。
  • ??ORDER BY???只能對??time???進(jìn)行排序,??asc???升序,??desc??降序。
  • ??LIMIT???分頁,??LIMIT???后面的數(shù)字是查詢顯示多少條,??OFFSET???后面數(shù)字代表偏移量(從0開始代表第一條),如??limit 10 offset 10??意思為從第11條開始往后10條。
  • 正則?

    #每個表輸出一行(支持 Go 語言的正則表達(dá)式、支持類似于 MySQL 中的 limit 語句)

    SELECT * FROM /.*/ LIMIT 1

    limit

    limit???可單獨使用,也可配合??offset???使用,??offset??偏移量的意思

    select * from student limit 2;

    排序

    ?order by??? 只能對??time???進(jìn)行排序,??asc???升序,??desc??降序。

    select * from student ?order by time desc;

    分組

    SELECT <function>(<field_key>) FROM_clause WHERE <time_range> GROUP BY time(time_interval,[<offset_interval])[,tag_key] [fill(<fill_option>)]?

    (1)group by tag

    select * from h2o_pH group by location limit 2

    (2)group by time(1m)?

    ????????對??time???分組時并不是簡單的??group by time???,??time???后面還需要加一個分組聚合的持續(xù)時間,如??group by time(1m)??。支持的持續(xù)時間單位有:

    (3)fill(0)填充null
    ????????可以看到??values???結(jié)果集中有??null???的情況,可在查詢語句中加??fill(0)???,遇到??null???用??0???來填充。??fill()??中只能填數(shù)字。

    條件查詢

    select * from student where a='1' and age=12; # a字段是tag :字符串


    select sum(age) as ageNums from student where time < now() group by a order by time desc;

    格式化顯示查詢數(shù)據(jù)

    format json
    select * from student where a='1' and age=12;

    模糊查詢(正則表達(dá)式

    # location名稱中包含coyote的數(shù)據(jù)
    select * from h2o_quality where location=~/.*coyote.*/ limit 10

    沒有in還有or

    select * from h2o_pH where location='coyote_creek' or location='santa_monica' limit 4

    from多表查詢?

    ????????多表查詢,以時間進(jìn)行連接,不存在的值用null填充。一般情況連接的兩張表tag和field上有一定的聯(lián)系和比較,毫不相干的兩表連接查詢沒什么價值。

    select * from h2o_feet,h2o_pH limit 1

    注意:

    1.field tag是關(guān)鍵字 如果字段名是這兩個,則需要加上單引號。

    2.tags???之間用逗號分隔,??fields??之間用逗號分隔,???tags??和??fields??之間用空格分隔?。

    3.tags???都是字符串類型,但是不用雙引號括起來;??fields??中有字符串類型需要用?英文雙引號?括起來,如果不用英文雙引號,會報語法錯誤??invalid boolean??,會認(rèn)為是無效的布爾值,因為布爾類型無需加雙引號。

    4.tags???中設(shè)置布爾值就是字符串,??fields???中有布爾值,可用 ??t , T , true , True , TRUE,f , F , false , False??表示。

    3. series 操作

    ????????series 相當(dāng)于是 InfluxDB 中一些數(shù)據(jù)的集合,在同一個 database 中,retention policy、measurement、tag sets 完全相同的數(shù)據(jù)同屬于一個 series,同一個 series 的數(shù)據(jù)在物理上會按照時間順序排列存儲在一起。

    ??shard???主要由4部分組成??Cache???、??Wal???、??Tsm file???、??Compactor??。

    #series 表示這個表里面的數(shù)據(jù),可以在圖表上畫成幾條線,series 主要通過 tags 排列組合算出來。

    show series from student;

    4.Shard?

    ????????shard 在 InfluxDB 中是一個比較重要的概念,它和 retention policy 相關(guān)聯(lián)。每一個存儲策略下會存在許多 shard,每一個 shard 存儲一個指定時間段內(nèi)的數(shù)據(jù),并且不重復(fù),例如 7點-8點 的數(shù)據(jù)落入 shard0 中,8點-9點的數(shù)據(jù)則落入 shard1 中。每一個 shard 都對應(yīng)一個底層的 tsm 存儲引擎,有獨立的 cache、wal、tsm file。

    ????????如果創(chuàng)建一個新的 retention policy 設(shè)置數(shù)據(jù)的保留時間為 1 天,則單個 shard 所存儲數(shù)據(jù)的時間間隔為 1 小時,超過1個小時的數(shù)據(jù)會被存放到下一個 shard 中。

    5. 用戶操作

    # 顯示用戶
    SHOW USERS
    # 創(chuàng)建用戶
    CREATE USER "username" WITH PASSWORD 'password'
    # 創(chuàng)建管理員權(quán)限的用戶?

    #influxdb 的權(quán)限設(shè)置比較簡單,只有讀、寫、ALL 幾種。
    CREATE USER "username" WITH PASSWORD 'password' WITH ALL PRIVILEGES
    # 刪除用戶
    DROP USER "username"

    2、API操作

    狀態(tài)碼

    • 2xx:服務(wù)請求正常
    • 4xx:代表請求語法有問題
    • 5xx:服務(wù)端出問題,導(dǎo)致超時等故障

    官方地址

    3、Java操作

    <dependency><groupId>org.influxdb</groupId><artifactId>influxdb-java</artifactId><version>2.23</version> </dependency> spring:application:name: spring-lean-influxdbinflux:url: http://192.168.56.22:18086user:password:database: test import lombok.Data; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; @Data @Configuration public class InfluxDBConfig {@Value("${spring.influx.user}")public String userName;@Value("${spring.influx.password}")public String password;@Value("${spring.influx.url}")public String url;//數(shù)據(jù)庫@Value("${spring.influx.database}")public String database; } import lombok.Builder; import lombok.Data; import org.influxdb.annotation.Column; import org.influxdb.annotation.Measurement; import org.influxdb.annotation.TimeColumn;import java.util.Date;@Builder @Data @Measurement(name = "t_log") public class LogInfo {// Column中的name為measurement中的列名// 此外,需要注意InfluxDB中時間戳均是以UTC時保存,在保存以及提取過程中需要注意時區(qū)轉(zhuǎn)換@Column(name = "time")private String time;// 注解中添加tag = true,表示當(dāng)前字段內(nèi)容為tag內(nèi)容@Column(name = "module", tag = true)private String module;@Column(name = "level", tag = true)private String level;@Column(name = "device_id", tag = true)private String deviceId;@Column(name = "msg")private String msg;@TimeColumnprivate Date createTime; } import com.lean.influxdb.config.InfluxDBConfig; import org.influxdb.InfluxDB; import org.influxdb.InfluxDBFactory; import org.influxdb.dto.BatchPoints; import org.influxdb.dto.Point; import org.influxdb.dto.Query; import org.influxdb.dto.QueryResult; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils;import javax.annotation.PostConstruct; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit;@Service public class InfluxDBService {@Autowiredprivate InfluxDBConfig influxDBConfig;@PostConstructpublic void initInfluxDb() {this.retentionPolicy = retentionPolicy == null || "".equals(retentionPolicy) ? "autogen" : retentionPolicy;this.influxDB = influxDbBuild();}//保留策略private String retentionPolicy;private InfluxDB influxDB;/*** 連接時序數(shù)據(jù)庫;獲得InfluxDB**/private InfluxDB influxDbBuild() {if (influxDB == null) {if(StringUtils.isEmpty(influxDBConfig.userName)){influxDB = InfluxDBFactory.connect(influxDBConfig.url);}else {influxDB = InfluxDBFactory.connect(influxDBConfig.url, influxDBConfig.userName, influxDBConfig.password);}influxDB.setDatabase(influxDBConfig.database);}return influxDB;}/*** 插入*/public void insertPoint(Point point) {influxDbBuild();influxDB.write(point);}/*** 插入** @param measurement 表* @param tags 標(biāo)簽* @param fields 字段*/public void insert(String measurement, Map<String, String> tags, Map<String, Object> fields) {influxDbBuild();Point.Builder builder = Point.measurement(measurement);builder.time(System.currentTimeMillis(), TimeUnit.MILLISECONDS);builder.tag(tags);builder.fields(fields);influxDB.write(influxDBConfig.database, "", builder.build());}/*** @param measurement* @param time* @param tags* @param fields* @return void* @desc 插入, 帶時間time*/public void insert(String measurement, long time, Map<String, String> tags, Map<String, Object> fields) {influxDbBuild();Point.Builder builder = Point.measurement(measurement);builder.time(time, TimeUnit.MILLISECONDS);builder.tag(tags);builder.fields(fields);influxDB.write(influxDBConfig.database, "", builder.build());}/*** 查詢** @param command 查詢語句* @return*/public QueryResult query(String command) {influxDbBuild();return influxDB.query(new Query(command, influxDBConfig.database));}/*** @param queryResult* @desc 查詢結(jié)果處理*/public List<Map<String, Object>> queryResultProcess(QueryResult queryResult) {List<Map<String, Object>> mapList = new ArrayList<>();List<QueryResult.Result> resultList = queryResult.getResults();//把查詢出的結(jié)果集轉(zhuǎn)換成對應(yīng)的實體對象,聚合成listfor (QueryResult.Result query : resultList) {List<QueryResult.Series> seriesList = query.getSeries();if (seriesList != null && seriesList.size() != 0) {for (QueryResult.Series series : seriesList) {List<String> columns = series.getColumns();String[] keys = columns.toArray(new String[columns.size()]);List<List<Object>> values = series.getValues();if (values != null && values.size() != 0) {for (List<Object> value : values) {Map<String, Object> map = new HashMap(keys.length);for (int i = 0; i < keys.length; i++) {map.put(keys[i], value.get(i));}mapList.add(map);}}}}}return mapList;}/*** @desc InfluxDB 查詢 count總條數(shù)*/public long countResultProcess(QueryResult queryResult) {long count = 0;List<Map<String, Object>> list = queryResultProcess(queryResult);if (list != null && list.size() != 0) {Map<String, Object> map = list.get(0);double num = (Double) map.get("count");count = new Double(num).longValue();}return count;}/*** 創(chuàng)建數(shù)據(jù)庫* @param dbName 創(chuàng)建數(shù)據(jù)庫* @return*/public void createDB(String dbName) {influxDbBuild();influxDB.createDatabase(dbName);}/*** 批量寫入測點* @param batchPoints*/public void batchInsert(BatchPoints batchPoints) {influxDbBuild();influxDB.write(batchPoints);}/*** 批量寫入數(shù)據(jù)** @param database 數(shù)據(jù)庫* @param retentionPolicy 保存策略* @param consistency 一致性* @param records 要保存的數(shù)據(jù)(調(diào)用BatchPoints.lineProtocol()可得到一條record)*/public void batchInsert(final String database, final String retentionPolicy,final InfluxDB.ConsistencyLevel consistency, final List<String> records) {influxDbBuild();influxDB.write(database, retentionPolicy, consistency, records);}/*** @param consistency* @param records* @desc 批量寫入數(shù)據(jù)*/public void batchInsert(final InfluxDB.ConsistencyLevel consistency, final List<String> records) {influxDbBuild();influxDB.write(influxDBConfig.database, "", consistency, records);}} import com.lean.influxdb.entity.LogInfo; import com.lean.influxdb.service.InfluxDBService; import org.influxdb.dto.Point; import org.influxdb.dto.QueryResult; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest;import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit;@SpringBootTest class SpringLeanInfluxdbApplicationTests {@Testvoid contextLoads() {}@Autowiredprivate InfluxDBService influxDBService;@Testpublic void test() {LogInfo logInfo = LogInfo.builder().level("1").module("log").deviceId("1").msg("消息").createTime(new Date()).build();Point point = Point.measurementByPOJO(logInfo.getClass()).addFieldsFromPOJO(logInfo).time(System.currentTimeMillis(), TimeUnit.MILLISECONDS).build();influxDBService.insertPoint(point);}@Testpublic void test1() {Integer pageSize = 15;Integer pageNum = 1;// InfluxDB支持分頁查詢,因此可以設(shè)置分頁查詢條件String pageQuery = " LIMIT " + pageSize + " OFFSET " + ((pageNum - 1) * pageSize);// 此處查詢所有內(nèi)容,如果String queryCmd = "SELECT * FROM student ORDER BY time DESC " + pageQuery;QueryResult queryResult = influxDBService.query(queryCmd);List<Map<String, Object>> maps = influxDBService.queryResultProcess(queryResult);maps.stream().forEach(s->{s.forEach((k,v)->{System.out.printf("k",k);System.out.printf("v",v);});});List<QueryResult.Result> resultList = queryResult.getResults();System.out.println(resultList);}@Testpublic void testSave() {String measurement = "student";Map<String, String> tags = new HashMap<>();tags.put("code", "1");tags.put("studentNums", "1");Map<String, Object> fields = new HashMap<>();fields.put("name", "張三");fields.put("age", "11");influxDBService.insert(measurement, tags, fields);}@Testpublic void testGetdata() {String command = "select * from student";QueryResult queryResult = influxDBService.query(command);List<Map<String, Object>> result = influxDBService.queryResultProcess(queryResult);for (Map map : result) {System.out.println("time:" + map.get("time")+ " code:" + map.get("code")+ " studentNums:" + map.get("studentNums")+ " name:" + map.get("name")+ " age:" + map.get("age"));}}}

    五、常用函數(shù)?

    AggregationsSelectorsTransformations
    COUNT()BOTTOM()CEILING()
    DISTINCT()FIRST()DERIVATIVE()
    INTEGRAL()LAST()DIFFERENCE()
    MEAN()MAX()ELAPSED()
    MEDIAN()MIN()FLOOR()
    SPREAD()PERCENTILE()HISTOGRAM()
    SUM()TOP()MOVING_AVERAGE()
    NON_NEGATIVE_DERIVATIVE()
    STDDEV()

    更多查看官網(wǎng):地址

    六、存儲策略

    ????????InfluxDB 每秒可以處理成千上萬條數(shù)據(jù),要將這些數(shù)據(jù)全部保存下來會占用大量的存儲空間,有時需要自動清理歷史數(shù)據(jù)。

    1.查看策略

    ?????????一個database可以有多個保留策略??retention policy???,但是只能有一個默認(rèn)??retention policy??

    show retention policies on databaseName

    2.創(chuàng)建策略

    數(shù)據(jù)庫新建都會分配一個默認(rèn)的保留策略:

    • name??,保留策略的名稱。
    • ??duration???,數(shù)據(jù)保留的持續(xù)時長,最小為??1h???。如果設(shè)置為0,數(shù)據(jù)永久保存(官方默認(rèn)RP),否則過期清理。它具有各種時間參數(shù),比如:h(小時),w(星期)
    • ??shardGroupDuration???,數(shù)據(jù)存儲在??shardGroup???的時間跨度。??shardGroup???是??influxdb???的一個邏輯存儲結(jié)構(gòu),其下包含多個??shard??。
    • ??replicaN??,全稱replication,復(fù)制因子,它決定在集群中存儲多少個數(shù)據(jù)副本。inflxudb集群中跨N個數(shù)據(jù)節(jié)點復(fù)制數(shù)據(jù),其中N就是復(fù)制因子。復(fù)制因子對單個節(jié)點實例不起作用,單機(jī)版默認(rèn)是1。
    • ??default??,true為默認(rèn)保留策略。

    基本語法:

    CREATE RETENTION POLICY <retention_policy_name> ON <database_name> DURATION <duration> REPLICATION <n> [SHARD DURATION <duration>] [DEFAULT]

    • retention_policy_name??: 策略名。
    • ??database_name??: 數(shù)據(jù)庫名(db必須存在)。
    • ??duration??: 數(shù)據(jù)保留時長。
    • ??REPLICATION??: 復(fù)制因子,單機(jī)版設(shè)置為1即可。
    • ??SHARD DURATION???:設(shè)置??shardGroupDuration???時長,表示每個??shard group??時間跨度時長。可不填,默認(rèn)根據(jù)RP的duration計算。
    • ??default??: true為設(shè)置該RP為默認(rèn)RP。

    CREATE RETENTION POLICY "策略名稱" ON "表名稱" DURATION 30d REPLICATION 1 DEFAULT

    3、修改策略

    ?ALTER RETENTION POLICY "策略名稱" ON "表名稱" DURATION 3w DEFAULT

    4. 刪除

    DROP RETENTION POLICY "策略名稱" ON "表名稱"

    七、目錄與文件結(jié)構(gòu)

    InfluxDB 的數(shù)據(jù)存儲主要有三個目錄。默認(rèn)情況下是 meta, wal 以及 data 三個目錄。

  • meta 用于存儲數(shù)據(jù)庫的一些元數(shù)據(jù),meta 目錄下有一個 meta.db 文件。
  • wal 目錄存放預(yù)寫日志文件,以 .wal 結(jié)尾。
  • data 目錄存放實際存儲的數(shù)據(jù)文件,以 .tsm 結(jié)尾。
  • ?shard:

    ? ? ? ? ??influxdb???存儲引擎??TSM???的具體實現(xiàn)。??TSM TREE???是專門為??influxdb???構(gòu)建的數(shù)據(jù)存儲格式。與現(xiàn)有的??B+ tree???或??LSM tree???實現(xiàn)相比,??TSM tree??具有更好的壓縮和更高的讀寫吞吐量。主要由4部分組成??Cache???、??Wal???、??Tsm file???、??Compactor??

    shard group:

    ??????????存儲??shard???的邏輯容器,每一個??shard group???都有一個不重疊的時間跨度,可根據(jù)保留策略??retention policy???的??duration???換算而得。數(shù)據(jù)根據(jù)不同的時間跨度存儲在不同的??shard group??中。

    cache :?

    ????????在內(nèi)存中是一個簡單的 map 結(jié)構(gòu),這里的 key 為 seriesKey + 分隔符 + filedName,目前代碼中的分隔符為 #!~#,entry 相當(dāng)于是一個按照時間排序的存放實際值的數(shù)組。

    ????????插入數(shù)據(jù)時,實際上是同時往 cache 與 wal 中寫入數(shù)據(jù),可以認(rèn)為 cache 是 wal 文件中的數(shù)據(jù)在內(nèi)存中的緩存。當(dāng) InfluxDB啟動時,會遍歷所有的 wal 文件,重新構(gòu)造 cache,這樣即使系統(tǒng)出現(xiàn)故障,也不會導(dǎo)致數(shù)據(jù)的丟失。

    wal:

    ?????????對數(shù)據(jù)的修改以日志的形式持久化存儲在磁盤上。

    ????????內(nèi)容與內(nèi)存中的 cache 相同,其作用就是為了持久化數(shù)據(jù),當(dāng)系統(tǒng)崩潰后可以通過 wal 文件恢復(fù)還沒有寫入到 tsm 文件中的數(shù)據(jù)。

    ????????文件中的一條數(shù)據(jù),對應(yīng)的是一個 key(measument + tags + fieldName) 下的所有 value 數(shù)據(jù),按照時間排序。

    tsm file:

    ????????真實存放數(shù)據(jù)的文件,單個 tsm file 大小最大為 2GB。每隔一段時間,內(nèi)存中的時序數(shù)據(jù)就會執(zhí)行flush操作將數(shù)據(jù)寫入到文件。

    compactor:

    ????????在后臺持續(xù)運行,每隔 1 秒會檢查一次是否有需要壓縮合并的數(shù)據(jù)。主要進(jìn)行兩種操作,一種是 cache 中的數(shù)據(jù)大小達(dá)到閥值后,進(jìn)行快照,之后轉(zhuǎn)存到一個新的 tsm 文件中。另外一種就是合并當(dāng)前的 tsm 文件,將多個小的 tsm 文件合并成一個,使每一個文件盡量達(dá)到單個文件的最大大小,減少文件的數(shù)量,并且一些數(shù)據(jù)的刪除操作也是在這個時候完成。

    數(shù)據(jù)存儲

    LSM-Tree VS B-Tree

    八、數(shù)據(jù)備份

    ????????兩種備份方式:1.db備份 2.元數(shù)據(jù)備份。元數(shù)據(jù)備份的備份是整個備份,不能拆分,而db數(shù)據(jù)的備份,完整的、增量的(從 RFC3339 格式的時間開始),或者針對特定的分片 ID。

    1、備份和恢復(fù)DB數(shù)據(jù)

    一、DB備份

    基本語法:

    通過??influxd backup -h??查看??backup??有哪些可選參數(shù)。

    ?Usage: influxd backup [options] PATH

    -portable: 默認(rèn)
    -host <host:port> # 需要備份的influxdb服務(wù)機(jī)器地址,可選,Defaults to 127.0.0.1:8088.
    -database <name> # 需要備份的db名稱,可選,若沒有指定,將備份所有數(shù)據(jù)庫
    -retention <name> # 備份某個保留策略的數(shù)據(jù),未指定,則備份所有rp的數(shù)據(jù)。
    -shard <id> # 需要備份的shard id,可選,若指定了備份shard,必須先選擇rp
    -start # 起始時間,日期必須采用 RFC3339格式(例如, 2015-12-24T08:12:23Z). 不能和-since一起使用
    -end # 結(jié)束時間,日期必須采用 RFC3339格式(例如, 2015-12-24T08:12:23Z) 不能和-since一起使用
    -since # 備份這個timestamp之后的數(shù)據(jù),建議用-start <timestamp>代替
    -skip-errors # 可選,當(dāng)備份shards時,跳過備份失敗的shard,繼續(xù)備份其他shard。

    influxd backup -database <mydatabase> <path-to-backup>

    mydatabase是您要備份的數(shù)據(jù)庫的名稱,以及path-to-backup備份數(shù)據(jù)應(yīng)該存儲的位置。

    注意:?Metastore 備份也包含在每個數(shù)據(jù)庫的備份中

    案例:

    1.備份所有數(shù)據(jù)庫

    influxd backup -portable /path/to/backup-directory

    2.備份school庫的所有數(shù)據(jù)。

    influxd backup -portable -db school ~/tmp/influx_backup/

    3.備份school 庫昨天的數(shù)據(jù)。

    influxd backup -portable -db school -start 2022-11-14T13:24:52.085243953Z -end 2020-11-15T13:24:52.085243953Z ~/tmp/influx_backup_yesterday/

    4.只備份school ???的??shard=2??的數(shù)據(jù)

    influxd backup -portable -db school -shard 2 ~/tmp/influx_backup_2/

    5.遠(yuǎn)程備份(所有數(shù)據(jù)庫)

    influxd backup -portable -host 1192.168.56.11:8088 /path/to/backup-directory

    二、DB恢復(fù)

    使用該influxd restore實用程序?qū)r間序列數(shù)據(jù)和元數(shù)據(jù)從 InfluxDB 備份還原到 InfluxDB。?

    ?influxd restore -h??查看restore可選參數(shù):

    Usage: influxd restore -portable [options] PATH

    Note: Restore using the '-portable' option consumes files in an improved Enterprise-compatible?
    ? format that includes a file manifest.

    Options:
    ? ? -portable?
    ? ? ? ? ? ??
    ? ? -host ?<host:port>
    ? ? ? ? ? ??
    ? ? -db ? ?<name>
    ? ? ? ? ? ? 從備份數(shù)據(jù)的哪個庫恢復(fù)數(shù)據(jù)
    ? ? -newdb <name>
    ? ? ? ? ? ? 數(shù)據(jù)恢復(fù)到新庫名稱,若沒有指定,選擇-db <name>的名稱。
    ?? ??? ??? ?newdb不存在,恢復(fù)時會自動創(chuàng)建
    ? ? -rp ? ?<name>
    ? ? ? ? ? ? 從備份數(shù)據(jù)的哪個rp恢復(fù)數(shù)據(jù),指定了-rp,必須指定-db
    ? ? -newrp <name>
    ? ? ? ? ? ? 恢復(fù)數(shù)據(jù)新的rp名稱,newrp必須存在。指定了-rp,未指定-newrp則使用-rp
    ? ? -shard <id>
    ? ? ? ? ? ? 需要恢復(fù)的shard,如果指定了'-db <db_name>' and '-rp <rp_name>',必須-shard<id>
    ? ? PATH
    ? ? ? ? ? ? 備份數(shù)據(jù)文件list?

    案例:

    1.恢復(fù)??~/tmp/influx_backup/???下??school???庫數(shù)據(jù)到新庫??new_school。

    influxd restore -portable ?-db school -newdb new_school ?~/tmp/influx_backup/

    ?2.恢復(fù)??~/tmp/influx_backup/???下??school???庫,??rp???為??rp_3???數(shù)據(jù)到新庫??new_school1??。

    influxd restore -portable ?-db school -rp rp_3 -newdb new_school1 ?~/tmp/influx_backup/

    3.恢復(fù)??~/tmp/influx_backup/???下??school???庫,??rp???為??rp_3???,??shard???為2的數(shù)據(jù)到新庫??new_school2???,并重命名??rp???的名稱為??rp_3days??。

    influxd restore -portable ?-db school -rp rp_3 -shard 2 ?-newdb new_school2 ? -newrp rp_3days ~/tmp/influx_backup/

    注意:

    二、備份和恢復(fù)元數(shù)據(jù)

    1、備份元數(shù)據(jù)

    influxd backup <path-to-backup>

    備份元數(shù)據(jù),沒有任何其他參數(shù),備份將只轉(zhuǎn)移當(dāng)前狀態(tài)的系統(tǒng)元數(shù)據(jù)到??path-to-backup???。??path-to-backup??為備份保存的目錄,不存在會自動創(chuàng)建。

    influxd backup tmp/mata_backup

    ?

    ?

    2、恢復(fù)元數(shù)據(jù)

    ?基本語法:

    influxd restore -metadir <path-to-meta-or-data-directory> <path-to-backup>

    參考來源:?

    influxdb官方英文文檔
    influxdb中文文檔
    https://segmentfault.com/a/1190000012385313

    總結(jié)

    以上是生活随笔為你收集整理的时序数据库 InfluxDB的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    特级大胆西西4444www | 91一区二区三区久久久久国产乱 | 久久国内精品视频 | 国产精品第72页 | 一区二区中文字幕在线播放 | 日韩av一卡二卡三卡 | 五月天激情综合 | 欧美狠狠色 | 日韩一级片大全 | 伊人电影天堂 | 久久久久久久久久久久亚洲 | 日本久久久久久 | 亚洲成人免费观看 | 四虎成人免费影院 | 欧美另类一二三四区 | 91在线九色 | 久久精品一区二区三区四区 | 国产香蕉视频在线播放 | 亚洲国产偷 | 亚洲精品资源在线 | 日韩a欧美 | 91香蕉视频 | 久久精品视频网 | 精品一区二区视频 | 日韩美在线| 天天插狠狠插 | 色婷婷婷 | 狠狠狠狠狠狠狠干 | 国产一级免费观看视频 | 久久久精选 | 国产香蕉av| 国产精品一区二区麻豆 | 99精品国产福利在线观看免费 | 成人免费视频播放 | 国产 一区二区三区 在线 | 国产小视频你懂的 | 激情五月综合网 | 中文永久免费观看 | 狠狠操在线 | 激情五月***国产精品 | 视频国产一区二区三区 | 日韩狠狠操 | 久久99精品国产一区二区三区 | 在线观看视频国产一区 | 国产小视频在线观看免费 | 国产色在线视频 | 激情丁香| 精品免费视频 | 国产日本亚洲高清 | 亚洲 欧洲 国产 精品 | 亚洲mv大片欧洲mv大片免费 | 91在线视频播放 | 天天综合亚洲 | 免费在线观看亚洲视频 | 国产日韩中文字幕在线 | 涩涩网站在线看 | 二区三区毛片 | 亚洲精品小视频 | 日本公乱妇视频 | 色婷婷免费 | 国产一级视屏 | 国内一区二区视频 | 天天天综合网 | 日韩网站中文字幕 | 久久久网 | 狠狠干婷婷色 | 亚洲第一av在线 | 日韩av五月天| 国产国产人免费人成免费视频 | 99热国产在线中文 | 国产明星视频三级a三级点| 韩日精品在线观看 | 国产91在线免费视频 | 99国产一区二区三精品乱码 | 男女啪啪视屏 | 久久九九免费视频 | 日韩av看片 | 精品免费国产一区二区三区四区 | 成人在线免费观看视视频 | 黄色av影视 | 国产精品久久久视频 | 久久成人福利 | 精产嫩模国品一二三区 | www.伊人网.com| 久久久久亚洲最大xxxx | 射久久 | 亚洲黄色一级电影 | 久久久久日本精品一区二区三区 | 日日干干夜夜 | 国产 日韩 欧美 中文 在线播放 | 日本精品一区二区三区在线观看 | 亚洲香蕉在线观看 | 9999免费视频 | 日韩亚洲在线观看 | 高清不卡免费视频 | 99精品免费网 | 色综合天天色综合 | 免费试看一区 | 国产视频一区二区在线 | 婷婷色网视频在线播放 | 天天射天天 | 国产成人久久精品一区二区三区 | 色资源网免费观看视频 | 日韩电影中文 | 久久夜av| 久色 网| 精品自拍sae8—视频 | 国产成人精品一区二三区 | 激情深爱.com | 久久久久在线 | 日韩av电影一区 | 欧美日韩中文在线观看 | 亚洲欧美日韩精品一区二区 | 欧美日韩国产一二 | 国产精品一区二区无线 | 免费看污片 | 国产精品毛片久久久久久久久久99999999 | 久久久久久久久久久高潮一区二区 | 新版资源中文在线观看 | 免费看91的网站 | 欧美一级网站 | 国内少妇自拍视频一区 | 久久一区国产 | 美女免费网视频 | 天天操天天干天天爽 | 精品一二区 | 97香蕉久久国产在线观看 | 成 人 黄 色视频免费播放 | 成片人卡1卡2卡3手机免费看 | 在线观看国产麻豆 | 久久91久久久久麻豆精品 | 久久久久麻豆 | 美女视频是黄的免费观看 | 国产最顶级的黄色片在线免费观看 | 天天色官网 | 操久在线 | 天天干天天做天天操 | 精品中文字幕在线观看 | 一区免费观看 | 成人网色 | 久久99国产精品久久99 | 91九色在线视频 | 91观看视频 | 色资源二区在线视频 | 婷婷深爱 | 亚洲精品乱码久久久久久按摩 | 天天干天天射天天插 | 99av国产精品欲麻豆 | 中文字幕九九 | 亚洲aⅴ一区二区三区 | 日韩精品在线看 | 免费看污污视频的网站 | 97色婷婷成人综合在线观看 | 国产做爰视频 | 久久99视频精品 | 国产精品免费一区二区三区在线观看 | 日韩高清dvd | 国产日产精品一区二区三区四区 | 在线亚洲成人 | 久久男人视频 | 视频一区二区三区视频 | 人人插超碰 | 欧美精品久久人人躁人人爽 | 色婷婷国产在线 | 免费av在线网站 | 欧美精品久久久久久久久久白贞 | 久草在线视频免赞 | 欧美一级日韩三级 | 四虎影院在线观看av | 国产精品乱码久久久久久1区2区 | 国产福利免费看 | 久久永久免费 | 日本女人的性生活视频 | 国产精品淫 | 久久久国产精品电影 | 99色网站| 一区二区三区免费 | 九九热在线观看视频 | 国产精品手机看片 | 丁香综合| 国产资源在线观看 | 精品亚洲一区二区三区 | 97免费在线观看视频 | 999久久国产精品免费观看网站 | 日本高清免费中文字幕 | 中文字幕av在线电影 | 日韩av影视在线观看 | 香蕉视频啪啪 | 日韩视频一 | 狠狠色噜噜狠狠狠合久 | 久久人人爽人人爽人人片 | 国产精品99久久久久久人免费 | 成人网在线免费视频 | 久久久蜜桃一区二区 | 91色一区二区三区 | 欧美日韩18 | 在线v片免费观看视频 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 亚洲欧洲精品一区 | 久久国产精品区 | 国内精品久久久久久久 | 国产精品9999久久久久仙踪林 | 91人人视频在线观看 | 在线免费观看涩涩 | 国产一级黄色电影 | 久久久久中文字幕 | 有码中文字幕 | 九九九九九九精品任你躁 | 中文字幕亚洲国产 | 日本在线观看中文字幕无线观看 | 97涩涩视频 | 在线观看日韩 | 天天综合网天天 | 在线观看日本韩国电影 | 999成人 | 久久久国产精品麻豆 | 国内精品免费久久影院 | 亚洲精品网站 | 国产欧美日韩精品一区二区免费 | 亚洲专区中文字幕 | 玖玖精品在线 | 色多多在线观看 | 中文字幕在线看 | 亚洲福利精品 | 免费在线观看成人小视频 | 精品久久久久久久久久久久久久久久 | 久久久久亚洲天堂 | 亚洲无人区小视频 | 午夜婷婷在线播放 | 天天色中文 | 欧美成人一区二区 | 久久综合久久综合这里只有精品 | 高清不卡一区二区三区 | 91一区啪爱嗯打偷拍欧美 | 欧美国产精品一区二区 | 91在线视频免费播放 | 久久精品79国产精品 | www.国产视频 | 色偷偷97 | 在线观看黄a | 超碰在线成人 | 亚洲国产精品成人综合 | 久射网| 亚洲网站在线 | 伊人中文在线 | 91视频在线观看下载 | 久久久久久免费网 | 中文字幕第一页在线 | 精品国产一区二区三区四 | 深爱激情亚洲 | 97免费在线视频 | 日韩精品一卡 | 在线播放视频一区 | 国产精品国产自产拍高清av | 国产黄色资源 | 国产成人精品久久久久蜜臀 | 亚洲欧美色婷婷 | 国产字幕在线看 | 精品专区 | 2019精品手机国产品在线 | 精品久久国产一区 | 国产精品一区二区久久精品爱涩 | 99国产精品一区二区 | 免费碰碰| 亚洲电影在线看 | 久久免费视频一区 | 一区二区三区四区精品视频 | 伊人久久国产精品 | 超碰在线免费97 | 最新影院 | 国产黑丝袜在线 | 久久久久久高潮国产精品视 | 婷婷五天天在线视频 | 玖玖玖在线观看 | 夜色成人av | 国产爽视频 | 九九热只有这里有精品 | 精品国产一区二区三区在线 | 亚洲精品国 | 黄网站a | 五月婷婷黄色网 | 五月天综合网站 | 国内精品久久久久影院优 | 在线免费观看视频你懂的 | 五月天九九 | 欧美 日韩 久久 | 欧美少妇xxx | av在线免费观看网站 | 91视频免费观看 | 国产成人一区二区精品非洲 | 激情丁香久久 | 91视频黄色 | 亚洲人人网 | 九九九热精品免费视频观看网站 | 天天色天天射天天操 | 国产91亚洲 | 五月天婷亚洲天综合网精品偷 | 免费观看高清 | 超碰在线日韩 | 国产精品网红福利 | 高清国产午夜精品久久久久久 | 中文字幕在线播放日韩 | 狠狠五月天 | 亚洲精品乱码久久久久久写真 | 亚洲精品国产成人av在线 | 国内精品视频免费 | av福利网址导航大全 | 国产成人精品一区二区在线观看 | 一区二区欧美激情 | 亚洲专区中文字幕 | 91人人爽久久涩噜噜噜 | 91精品亚洲影视在线观看 | 国产精品成人品 | 97超级碰碰碰碰久久久久 | 国产第一页精品 | 久久久久久毛片精品免费不卡 | 久久精品韩国 | 成人黄色电影在线 | 久久天堂精品视频 | 国产精品久久久久久久av大片 | 国产精品久久久久久a | 69精品在线观看 | 日韩剧情 | 国产色女人 | 日韩三级精品 | 国产特级毛片 | 国产精品毛片一区二区三区 | 黄色亚洲大片免费在线观看 | 麻豆传媒视频观看 | 国产又粗又硬又爽视频 | 中文字幕精品一区久久久久 | 亚洲另类视频在线 | 欧美色黄| 韩国一区在线 | 一区二区三区av在线 | 婷婷爱五月天 | 日韩在线视频在线观看 | 欧美午夜剧场 | 国产精品精品 | 黄色大片免费网站 | 在线播放 日韩专区 | 麻豆果冻剧传媒在线播放 | 97超碰人人在线 | 国产91精品一区二区麻豆亚洲 | 中文字幕文字幕一区二区 | 在线观看中文字幕2021 | 五月婷婷中文网 | 91在线国内视频 | 91福利社区在线观看 | 国产黄色片免费看 | 五月婷婷狠狠 | 国产成人三级在线 | 人人干干人人 | 日日爽日日操 | 人人看黄色 | 国产第一福利 | 国产91精品一区二区 | 国产视频2021 | 欧美日韩在线视频观看 | 久久免费视频国产 | 在线观看成人福利 | 成人在线黄色电影 | 欧美激情视频一区二区三区 | 中中文字幕av| 中文视频在线看 | 亚洲aⅴ一区二区三区 | 一区二区三区在线影院 | www黄色软件| 波多野结衣电影一区 | 欧美日韩在线观看不卡 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 黄色综合 | 久久精品视 | 曰本免费av | 日批视频在线观看免费 | 天天射天天干天天操 | 日韩av在线一区二区 | 亚洲免费黄色 | 91高清在线看 | 天天爽夜夜爽精品视频婷婷 | 日韩激情小视频 | 91免费高清在线观看 | 午夜精品一区二区三区视频免费看 | 国产a级片免费观看 | 日韩免费在线观看网站 | 在线岛国av| 久久情爱 | 亚洲激情婷婷 | 国产精彩在线视频 | 中文字幕在线观看播放 | 国产婷婷一区二区 | 久热av在线 | 人人干网站 | 97精品国自产拍在线观看 | 日韩av一区在线观看 | 国产精品 亚洲精品 | 国产精品久久久久久吹潮天美传媒 | 精品国偷自产国产一区 | 欧美日bb | 免费av片在线 | 在线观看视频黄 | 亚洲国产综合在线 | 色免费在线 | 在线观看免费av片 | 在线黄色国产电影 | 五月婷婷激情五月 | 在线你懂| 九九久久精品视频 | 国产精品视频全国免费观看 | 欧美极品一区二区三区 | 久草视频在线播放 | 中文字幕人成乱码在线观看 | 日韩av网页 | 99久久精品国产系列 | 91超在线 | 99在线国产 | 精品999| 四川bbb搡bbb爽爽视频 | 久久久久久久久久国产精品 | 国内精品视频在线 | 国产中文字幕免费 | 黄色在线视频网址 | 国产一级黄色片免费看 | 中文字幕一二三区 | 91精品欧美 | 亚洲人成人99网站 | 天天射天天射 | 人人爽人人舔 | 最近中文字幕免费av | 精品亚洲成人 | 中午字幕在线 | 中文字幕二区 | 国产精品18久久久久久首页狼 | 日韩三级中文字幕 | 日本女人的性生活视频 | 国产精品久久在线 | 久久精品久久99 | 久久久精品国产免费观看一区二区 | 超碰人人99 | 亚洲天天在线日亚洲洲精 | 日韩欧美精品一区二区三区经典 | 久久久999免费视频 日韩网站在线 | 最近久乱中文字幕 | 午夜av一区 | 免费视频久久久久久久 | 91av电影在线 | .国产精品成人自产拍在线观看6 | 91福利视频网站 | 日本aaaa级毛片在线看 | 国产成人黄色网址 | 久久精品高清 | 超级碰碰免费视频 | 久久人人精 | 草在线| 亚洲a在线观看 | 中文字幕在线播放av | 精品久久久久久一区二区里番 | 国产精品免费久久久久 | 伊人影院99 | 97精品超碰一区二区三区 | 欧美狠狠色 | 欧美日韩天堂 | 中文字幕视频网站 | 日韩a级黄色 | 爱射综合 | 亚洲国产精品影院 | 国产免费黄视频在线观看 | 国产你懂的在线 | 久久a级片| 少妇精品久久久一区二区免费 | 欧美精品中文字幕亚洲专区 | 九九欧美| 超碰公开在线 | 玖玖视频在线 | 日日夜夜人人天天 | 成人a级网站 | 国产97碰免费视频 | 99视频这里有精品 | 日韩专区在线 | 国产馆在线播放 | 国产做爰视频 | 天天拍天天爽 | 美女视频免费一区二区 | 久久毛片网 | 国产精品v a免费视频 | 日韩xxxbbb| 国产成人av电影在线观看 | 欧美精品999| 色综合天天做天天爱 | 国产精品乱码久久 | 亚洲深夜影院 | 中文字幕 在线 一 二 | 精品久久免费看 | 日韩一级精品 | 日本xxxx裸体xxxx17 | 亚洲精品自拍视频在线观看 | 欧美性大战 | 成年人免费看的视频 | 九九热在线视频免费观看 | 中文字幕日本在线观看 | 国产精品 中文字幕 亚洲 欧美 | 有码视频在线观看 | 久久撸在线视频 | 欧美日韩免费在线观看视频 | 在线观看91精品国产网站 | 免费国产黄线在线观看视频 | 色综合久久天天 | 国产高清精品在线 | 青青草国产免费 | 黄色看片 | 国产露脸91国语对白 | 午夜久久福利影院 | 日本中文不卡 | 亚洲一区二区高潮无套美女 | 精品国产一区二区三区男人吃奶 | 午夜精品久久久 | 99热官网| 色综合色综合色综合 | 亚洲精品乱码久久久久久9色 | 日韩在线免费观看视频 | 在线观看av的网站 | 亚洲成年片 | 91av短视频 | 国产 日韩 欧美 在线 | 永久免费观看视频 | 91丨九色丨91啦蝌蚪老版 | 高清av中文在线字幕观看1 | 亚洲精品字幕在线 | 国产a视频免费观看 | 久色免费视频 | 久久6精品 | 激情五月婷婷综合网 | 一本到在线 | 成人免费一区二区三区在线观看 | 日韩在线免费电影 | 91综合久久一区二区 | 国产91精品高清一区二区三区 | 国产美女精品久久久 | 亚洲九九九 | 99视频一区| 日本字幕网 | 成 人 黄 色 视频免费播放 | 五月天亚洲综合 | av日韩中文| 欧美,日韩| 亚洲国产精品99久久久久久久久 | 欧美一区二区三区在线看 | 91麻豆精品一区二区三区 | 五月激情综合婷婷 | 久久免费av电影 | 最新国产中文字幕 | 亚洲第一伊人 | 麻豆成人小视频 | 日日干夜夜操视频 | 午夜 在线 | 69夜色精品国产69乱 | 日本久久久久久久久久久 | 在线观看日本高清mv视频 | 一区二区不卡高清 | 国产精品久久久久久影院 | 成人a v视频| 欧美久草网 | 久久一区二区三区超碰国产精品 | 日日操狠狠干 | av免费观看网址 | 中文字幕久久网 | 人人爽人人爽人人爽人人爽 | 97精品免费视频 | 国产资源在线视频 | 麻豆精品在线视频 | 在线中文字幕视频 | 久久精品久久综合 | 99这里只有久久精品视频 | 久久久久久蜜桃一区二区 | 亚州欧美视频 | 午夜精品电影 | 在线 国产 亚洲 欧美 | 国产美女视频网站 | 日韩中文在线字幕 | 色99中文字幕 | 999成人| 亚洲一区二区天堂 | 91黄色成人| 日韩午夜电影 | 国产自产高清不卡 | 五月婷网站 | 人人爽人人搞 | 国产精品久久久999 国产91九色视频 | 日日夜夜天天综合 | 狠狠色丁香婷婷综合久小说久 | 91综合色| 亚洲一区二区三区四区精品 | 国产在线观看 | 欧美亚洲一区二区在线 | 国产精品成人在线观看 | 亚洲二区精品 | 97色狠狠 | 亚州欧美视频 | 黄色app网站在线观看 | 黄色大片日本免费大片 | 亚州人成在线播放 | 91亚洲精品久久久久图片蜜桃 | 免费成人在线电影 | 毛片一二区| 久久毛片高清国产 | 波多野结衣一区三区 | 国产免费大片 | 欧美久久久久久久久久久 | 久久精品99国产精品酒店日本 | 美女精品 | 国产福利中文字幕 | 黄色激情网址 | 五月婷丁香网 | 狠狠色丁香久久婷婷综合五月 | 久久一二三四 | 欧洲精品视频一区二区 | 伊人色**天天综合婷婷 | 国产视频不卡一区 | www.夜夜爽 | 欧美五月婷婷 | 国内偷拍精品视频 | 国产女人18毛片水真多18精品 | av免费观看高清 | 91麻豆精品国产自产 | 在线观看成人毛片 | 日批视频国产 | 久久情网 | av免费高清观看 | 99re国产 | 中文字幕在线视频精品 | 国产精品自拍在线 | 在线视频你懂得 | av免费看在线 | 国产精品女同一区二区三区久久夜 | 亚洲成人影音 | 色永久免费视频 | 国产精品久久久久久a | 成人在线视频一区 | 国产视频一区二区在线 | 精品自拍网 | 免费在线激情电影 | 五月天婷婷免费视频 | 福利视频一区二区 | 久久免费播放 | 天天拍天天干 | 麻豆传媒视频在线播放 | 在线播放你懂 | 国产大尺度视频 | 国产日韩欧美视频 | 操操操com | 国产成人免费高清 | 久久午夜影院 | 久久综合精品国产一区二区三区 | 久草精品国产 | 成人一区二区三区中文字幕 | 日韩黄色网络 | 九九热.com | 亚洲黄色区 | 免费日p视频 | 天天天射| 日韩精品免费在线观看 | 亚洲日本一区二区在线 | 久久久www | 日日爱夜夜爱 | 日韩成人在线一区二区 | 国产视频一区二区在线 | 99精品黄色 | 婷婷色资源 | 免费看的黄网站软件 | 久热av| 黄色三级免费网址 | 国产高清视频在线播放一区 | 婷婷成人在线 | 一区二区三区高清不卡 | 国产字幕在线看 | 成人午夜精品久久久久久久3d | 欧美精品免费视频 | 日韩18p| 国产一级免费观看 | 久久激情五月丁香伊人 | 在线视频18在线视频4k | 国产香蕉97碰碰久久人人 | 国产视频久 | 久久婷婷国产色一区二区三区 | 91亚瑟视频 | 在线观看完整版免费 | 欧美成人中文字幕 | 91精品国产网站 | 国产精品美女久久久久久久久久久 | 中文字幕九九 | av一本久道久久波多野结衣 | 国产精品一区二区久久精品爱微奶 | 午夜免费福利视频 | 亚洲永久av | 欧美极品少妇xbxb性爽爽视频 | 手机av看片 | 欧美精选一区二区三区 | 在线综合色 | 九九在线视频免费观看 | 91精品在线免费 | 天天射天天干天天爽 | 国产黑丝一区二区 | 国产原创av在线 | 久久精品久久精品久久 | 久 久久影院 | 激情五月在线观看 | 亚洲电影免费 | 久久tv视频| 久久精品美女视频网站 | wwwwww黄 | 亚洲免费av在线播放 | 97超级碰 | 亚洲国产影院av久久久久 | 99久久日韩精品视频免费在线观看 | 97精品超碰一区二区三区 | 久久人人爽人人爽人人片av软件 | 18久久久| 日韩和的一区二在线 | 日本一区二区高清不卡 | 操操操操网 | 91精品国自产在线观看 | 欧美日韩国产欧美 | 黄色网www | 99久久精品无免国产免费 | 国产精品欧美一区二区 | 日韩精品在线免费播放 | 色综合天天天天做夜夜夜夜做 | 久精品视频免费观看2 | 精选久久 | 成人免费一级 | 日本乱码在线 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 97在线视频观看 | 久久国产精品99久久久久久进口 | 婷婷色网视频在线播放 | 成人h电影 | 国产精品乱码久久久久久1区2区 | 91人人澡人人爽人人精品 | 狠狠狠色丁香综合久久天下网 | 天天草天天操 | 国产五月 | 亚洲天堂精品视频在线观看 | 91视频高清免费 | 有码中文字幕在线观看 | 亚洲激情 欧美激情 | 麻豆视频入口 | 国产精品久久久久免费观看 | 免费看污网站 | 久久精品中文字幕一区二区三区 | 国产精品成人久久久久久久 | 国产综合91 | 欧美国产精品久久久久久免费 | 久久久国产精品麻豆 | 中文字幕 国产专区 | 大型av综合网站 | 国产麻豆剧果冻传媒视频播放量 | 日韩久久视频 | 免费在线黄色av | 成人黄色毛片 | 国产精品人成电影在线观看 | 欧美性一级观看 | 国产精品一区二区白浆 | 在线播放 一区 | 肉色欧美久久久久久久免费看 | 国产精品美女999 | 在线观看午夜av | 国产中文视 | 91禁看片 | 久久久久久久综合色一本 | 久久国产欧美日韩精品 | 亚洲第一久久久 | 首页av在线| 九九久久精品 | 97天天综合网 | 久久精品国产久精国产 | 人人揉人人揉人人揉人人揉97 | 日韩在线免费高清视频 | 超碰国产在线 | 国产精选在线观看 | 四虎成人精品永久免费av九九 | 欧美一级性视频 | 国产精品久久久久免费 | 日韩精品视频在线免费观看 | 在线播放国产一区二区三区 | 人人爽人人爽人人片 | 91成人免费在线 | 精品99免费视频 | 美女一区网站 | 日韩va在线观看 | 色免费在线 | 久久亚洲欧美 | 国产成人福利在线观看 | 国产精品久久久久久久免费大片 | 免费av网址在线观看 | 国产精品久久久久一区二区 | 91av网站在线观看 | 狠狠久久婷婷 | 国内精品久久久久影院一蜜桃 | 玖玖玖国产精品 | www.亚洲激情.com | 久章草在线观看 | 日韩在线观看中文字幕 | 欧美日韩超碰 | 99在线免费观看视频 | 国产精品剧情 | 精品理论片 | 激情av在线资源 | 国产精品久久久av久久久 | 永久免费毛片在线观看 | 国产亚洲精品久久久久5区 成人h电影在线观看 | 成年人看片网站 | 97超碰精品| 国产精品一区二区免费看 | 黄色美女免费网站 | 69久久久 | 视频 天天草| 色婷婷国产精品一区在线观看 | 色噜噜色噜噜 | 亚洲国产精品电影 | 日韩偷拍精品 | 久久精品一区二区三区视频 | 日韩av不卡在线播放 | 色婷婷88av视频一二三区 | 国产一线二线三线性视频 | 亚洲精品免费视频 | 亚洲精品久久久久中文字幕m男 | 国产系列 在线观看 | 精品黄色在线观看 | 精品国产美女 | 97超视频免费观看 | 亚洲www天堂com | 在线观看精品黄av片免费 | 久久精品一区二区三区四区 | 国产色在线 | 免费黄在线观看 | 日韩欧美在线高清 | 欧美一级片免费 | 亚洲黄色免费网站 | 另类五月激情 | 看片黄网站| 亚洲精品男人的天堂 | 91成人蝌蚪| 97日日碰人人模人人澡分享吧 | 精品少妇一区二区三区在线 | 99精品国产高清在线观看 | 国产18精品乱码免费看 | av在线免费不卡 | 成人午夜黄色影院 | 久久精品爱爱视频 | 久久久影院一区二区三区 | 综合网中文字幕 | 国产精品久久久久久模特 | 久久短视频 | 激情导航| 在线观看视频你懂的 | 欧美精品久久久久久久亚洲调教 | 深爱激情五月综合 | 亚洲v精品| 99精品热 | 00av视频| 91探花在线视频 | 国产97在线观看 | 韩国av一区二区三区在线观看 | 欧美午夜精品久久久久久浪潮 | 九九视频在线 | 在线观看片 | 人人玩人人添人人澡超碰 | 久久不卡免费视频 | 国产精品av免费在线观看 | 日韩欧美有码在线 | 日本婷婷色 | av大全免费在线观看 | 人人爽人人爽人人片 | 成人av中文字幕在线观看 | 天天操夜夜叫 | 天天躁日日躁狠狠躁av中文 | 超碰伊人网 | 四虎亚洲精品 | 黄色福利网 | aaa亚洲精品一二三区 | 国产日韩精品一区二区在线观看播放 | 特黄一级毛片 | 国产又粗又硬又爽视频 | 久久精品久久99 | 国产精品mm | 波多野结衣一区 | 青青河边草免费视频 | 国产精品一区久久久久 | 在线色网站 | 在线视频 国产 日韩 | 亚洲精品综合一区二区 | 激情伊人五月天 | 狠狠干综合 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 深夜男人影院 | 欧美国产日韩一区二区三区 | 欧美在线日韩在线 | 久久精品亚洲国产 | 久久影视一区二区 | 狠狠干狠狠操 | 欧美污污视频 | 97视频人人澡人人爽 | 欧美激精品 | 亚洲精品黄网站 | 在线观看中文字幕网站 | 97超碰中文 | 免费看91的网站 | www免费黄色| 欧美日韩中文字幕在线视频 | 日韩理论片在线观看 | 日本三级不卡 | 99爱视频在线观看 | 亚洲成人免费在线观看 | 高清不卡免费视频 | 激情久久久 | 99精品一区二区 | 亚洲 欧美 91 | av在线播放快速免费阴 | 五月网婷婷 | 亚洲经典精品 | 国产一级二级在线播放 | 欧洲精品码一区二区三区免费看 | 91九色成人 | 亚洲午夜小视频 | 久久久久久国产精品 | 日韩高清黄色 | 精品久久免费 | 色中色资源站 | av在线电影播放 | 日韩黄色在线电影 | 久久亚洲影视 | 区一区二区三在线观看 | 日日夜日日干 | 中文字幕视频播放 | 亚洲精品女人久久久 | 在线国产小视频 | 在线电影a| 久久久久免费网站 | 午夜少妇一区二区三区 | 四虎成人免费影院 | 欧美一二区在线 | 欧美日韩一区二区视频在线观看 | 天天摸日日摸人人看 | 韩日av一区二区 | 国产精品入口a级 | 免费黄色看片 | 久久久91精品国产一区二区三区 | 久久不卡电影 | 2023国产精品自产拍在线观看 | 免费在线观看成人av | 狠狠狠狠狠狠狠狠 | 97超碰在线视 | 99精品色| 91福利区一区二区三区 | 欧美影院久久 | 欧美成人在线免费观看 | 在线色亚洲 | 51久久夜色精品国产麻豆 | 国产一级电影免费观看 | 伊人天堂久久 | 一区视频在线 | 国产资源在线视频 | 色综合久久久久综合体桃花网 | 精品欧美一区二区在线观看 | 波多野结衣电影一区二区 | 国产色视频网站2 | 欧美少妇bbwhd | 在线观看色网 | 国产精品激情在线观看 | av日韩av| 国产成人精品福利 | 久草视频手机在线 | 麻豆91精品视频 | 国产精品手机在线播放 | 在线观看成人毛片 | 一区二区三区韩国免费中文网站 | 久久中文网 | 超碰免费av | 欧洲亚洲女同hd | 久久资源在线 | 国产成人一区在线 | 国产伦精品一区二区三区照片91 | 91精品成人久久 | 四虎天堂 | 91视频中文字幕 | 黄色毛片网站在线观看 | 亚洲国产成人久久 | 99精品视频在线免费观看 | 久草网免费 | 欧美精品久久 | 毛片网站在线 | 91精品久久久久久综合乱菊 | 九九九热精品 | 欧美资源在线观看 | 久久8精品| 久久久久久久久久伊人 | 天天撸夜夜操 | 国产精品乱码久久久久久1区2区 |