diff --git a/README.md b/README.md
index ca317c0..5da9946 100644
--- a/README.md
+++ b/README.md
@@ -18,7 +18,7 @@
-
+
diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js
index 29f1339..a26966d 100644
--- a/docs/.vuepress/config.js
+++ b/docs/.vuepress/config.js
@@ -86,7 +86,7 @@ module.exports = {
// contentBgStyle: 1,
- category: false, // 是否打开分类功能,默认true。 如打开,会做的事情有:1. 自动生成的frontmatter包含分类字段 2.页面中显示与分类相关的信息和模块 3.自动生成分类页面(在@pages文件夹)。如关闭,则反之。
+ category: true, // 是否打开分类功能,默认true。 如打开,会做的事情有:1. 自动生成的frontmatter包含分类字段 2.页面中显示与分类相关的信息和模块 3.自动生成分类页面(在@pages文件夹)。如关闭,则反之。
tag: true, // 是否打开标签功能,默认true。 如打开,会做的事情有:1. 自动生成的frontmatter包含标签字段 2.页面中显示与标签相关的信息和模块 3.自动生成标签页面(在@pages文件夹)。如关闭,则反之。
archive: true, // 是否打开归档功能,默认true。 如打开,会做的事情有:1.自动生成归档页面(在@pages文件夹)。如关闭,则反之。
diff --git a/docs/.vuepress/public/images/dunwu-logo-100.png b/docs/.vuepress/public/images/dunwu-logo-100.png
deleted file mode 100644
index 12d8177..0000000
Binary files a/docs/.vuepress/public/images/dunwu-logo-100.png and /dev/null differ
diff --git a/docs/.vuepress/public/images/dunwu-logo-200.png b/docs/.vuepress/public/images/dunwu-logo-200.png
deleted file mode 100644
index ea0a019..0000000
Binary files a/docs/.vuepress/public/images/dunwu-logo-200.png and /dev/null differ
diff --git a/docs/.vuepress/public/images/dunwu-logo-50.png b/docs/.vuepress/public/images/dunwu-logo-50.png
deleted file mode 100644
index 90a1976..0000000
Binary files a/docs/.vuepress/public/images/dunwu-logo-50.png and /dev/null differ
diff --git a/docs/.vuepress/public/images/dunwu-logo.png b/docs/.vuepress/public/images/dunwu-logo.png
deleted file mode 100644
index 61570e2..0000000
Binary files a/docs/.vuepress/public/images/dunwu-logo.png and /dev/null differ
diff --git a/docs/.vuepress/public/img/EB-logo.png b/docs/.vuepress/public/img/EB-logo.png
deleted file mode 100644
index 8e1d567..0000000
Binary files a/docs/.vuepress/public/img/EB-logo.png and /dev/null differ
diff --git a/docs/.vuepress/public/img/bg.jpeg b/docs/.vuepress/public/img/bg.jpeg
deleted file mode 100644
index 85e53e7..0000000
Binary files a/docs/.vuepress/public/img/bg.jpeg and /dev/null differ
diff --git a/docs/.vuepress/public/img/bg.jpg b/docs/.vuepress/public/img/bg.jpg
deleted file mode 100644
index f093e79..0000000
Binary files a/docs/.vuepress/public/img/bg.jpg and /dev/null differ
diff --git a/docs/.vuepress/public/img/gif/猫1.gif b/docs/.vuepress/public/img/gif/猫1.gif
deleted file mode 100644
index e84d8a2..0000000
Binary files a/docs/.vuepress/public/img/gif/猫1.gif and /dev/null differ
diff --git a/docs/.vuepress/public/img/gif/猫2.gif b/docs/.vuepress/public/img/gif/猫2.gif
deleted file mode 100644
index 2811459..0000000
Binary files a/docs/.vuepress/public/img/gif/猫2.gif and /dev/null differ
diff --git a/docs/.vuepress/public/img/gif/猫3.gif b/docs/.vuepress/public/img/gif/猫3.gif
deleted file mode 100644
index 894372d..0000000
Binary files a/docs/.vuepress/public/img/gif/猫3.gif and /dev/null differ
diff --git a/docs/.vuepress/public/img/gif/猫4.gif b/docs/.vuepress/public/img/gif/猫4.gif
deleted file mode 100644
index 7b99130..0000000
Binary files a/docs/.vuepress/public/img/gif/猫4.gif and /dev/null differ
diff --git a/docs/.vuepress/public/img/panda-waving.png b/docs/.vuepress/public/img/panda-waving.png
deleted file mode 100644
index 20246c6..0000000
Binary files a/docs/.vuepress/public/img/panda-waving.png and /dev/null differ
diff --git a/docs/.vuepress/public/img/png/思维导图.png b/docs/.vuepress/public/img/png/思维导图.png
deleted file mode 100644
index 819ef70..0000000
Binary files a/docs/.vuepress/public/img/png/思维导图.png and /dev/null differ
diff --git a/docs/.vuepress/public/img/png/数据库.png b/docs/.vuepress/public/img/png/数据库.png
deleted file mode 100644
index 4d13c3f..0000000
Binary files a/docs/.vuepress/public/img/png/数据库.png and /dev/null differ
diff --git a/docs/.vuepress/public/img/png/数据结构.png b/docs/.vuepress/public/img/png/数据结构.png
deleted file mode 100644
index 1bafe96..0000000
Binary files a/docs/.vuepress/public/img/png/数据结构.png and /dev/null differ
diff --git a/docs/.vuepress/public/img/png/服务器.png b/docs/.vuepress/public/img/png/服务器.png
deleted file mode 100644
index 4127eb5..0000000
Binary files a/docs/.vuepress/public/img/png/服务器.png and /dev/null differ
diff --git a/docs/.vuepress/public/img/png/机器学习.png b/docs/.vuepress/public/img/png/机器学习.png
deleted file mode 100644
index 081c2b8..0000000
Binary files a/docs/.vuepress/public/img/png/机器学习.png and /dev/null differ
diff --git a/docs/.vuepress/public/img/png/算法.png b/docs/.vuepress/public/img/png/算法.png
deleted file mode 100644
index 92fef3f..0000000
Binary files a/docs/.vuepress/public/img/png/算法.png and /dev/null differ
diff --git a/docs/.vuepress/public/img/png/系统.png b/docs/.vuepress/public/img/png/系统.png
deleted file mode 100644
index 87f0de0..0000000
Binary files a/docs/.vuepress/public/img/png/系统.png and /dev/null differ
diff --git a/docs/.vuepress/public/img/png/系统分析.png b/docs/.vuepress/public/img/png/系统分析.png
deleted file mode 100644
index 208e259..0000000
Binary files a/docs/.vuepress/public/img/png/系统分析.png and /dev/null differ
diff --git a/docs/.vuepress/public/img/png/编程.png b/docs/.vuepress/public/img/png/编程.png
deleted file mode 100644
index a8bca76..0000000
Binary files a/docs/.vuepress/public/img/png/编程.png and /dev/null differ
diff --git a/docs/.vuepress/public/img/png/网络技术.png b/docs/.vuepress/public/img/png/网络技术.png
deleted file mode 100644
index f81edb7..0000000
Binary files a/docs/.vuepress/public/img/png/网络技术.png and /dev/null differ
diff --git a/docs/.vuepress/public/img/png/计算机网络.png b/docs/.vuepress/public/img/png/计算机网络.png
deleted file mode 100644
index 63a1819..0000000
Binary files a/docs/.vuepress/public/img/png/计算机网络.png and /dev/null differ
diff --git a/docs/.vuepress/public/img/png/软件开发.png b/docs/.vuepress/public/img/png/软件开发.png
deleted file mode 100644
index 72c5e85..0000000
Binary files a/docs/.vuepress/public/img/png/软件开发.png and /dev/null differ
diff --git a/docs/.vuepress/public/img/png/面向对象.png b/docs/.vuepress/public/img/png/面向对象.png
deleted file mode 100644
index cd13fa3..0000000
Binary files a/docs/.vuepress/public/img/png/面向对象.png and /dev/null differ
diff --git a/docs/.vuepress/public/img/png/项目管理.png b/docs/.vuepress/public/img/png/项目管理.png
deleted file mode 100644
index 0467abd..0000000
Binary files a/docs/.vuepress/public/img/png/项目管理.png and /dev/null differ
diff --git a/docs/.vuepress/public/img/python.png b/docs/.vuepress/public/img/python.png
deleted file mode 100644
index c3ddebe..0000000
Binary files a/docs/.vuepress/public/img/python.png and /dev/null differ
diff --git a/docs/.vuepress/public/img/ui.png b/docs/.vuepress/public/img/ui.png
deleted file mode 100644
index 617c56d..0000000
Binary files a/docs/.vuepress/public/img/ui.png and /dev/null differ
diff --git a/docs/.vuepress/public/img/web.png b/docs/.vuepress/public/img/web.png
deleted file mode 100644
index 0a6e27c..0000000
Binary files a/docs/.vuepress/public/img/web.png and /dev/null differ
diff --git a/docs/01.数据库综合/01.Nosql技术选型.md b/docs/01.数据库综合/01.Nosql技术选型.md
index bf064a3..7c7dccf 100644
--- a/docs/01.数据库综合/01.Nosql技术选型.md
+++ b/docs/01.数据库综合/01.Nosql技术选型.md
@@ -1,9 +1,14 @@
---
title: Nosql技术选型
date: 2020-02-09 02:18:58
-categories: ['数据库', '数据库综合']
-tags: ['数据库', '综合', 'Nosql']
-permalink: /pages/75af9b/
+categories:
+ - 数据库
+ - 数据库综合
+tags:
+ - 数据库
+ - 综合
+ - Nosql
+permalink: /pages/4a5e3f/
---
# Nosql 技术选型
diff --git a/docs/01.数据库综合/02.数据结构与数据库索引.md b/docs/01.数据库综合/02.数据结构与数据库索引.md
index 684e1d9..20a4f94 100644
--- a/docs/01.数据库综合/02.数据结构与数据库索引.md
+++ b/docs/01.数据库综合/02.数据结构与数据库索引.md
@@ -1,9 +1,15 @@
---
title: 数据结构与数据库索引
date: 2022-03-27 23:39:10
-categories: ['数据库', '数据库综合']
-tags: ['数据库', '综合', '数据结构', '索引']
-permalink: /pages/875f28/
+categories:
+ - 数据库
+ - 数据库综合
+tags:
+ - 数据库
+ - 综合
+ - 数据结构
+ - 索引
+permalink: /pages/4702da/
---
# 数据结构与数据库索引
diff --git a/docs/01.数据库综合/README.md b/docs/01.数据库综合/README.md
index 86eb13d..75150c4 100644
--- a/docs/01.数据库综合/README.md
+++ b/docs/01.数据库综合/README.md
@@ -1,9 +1,13 @@
---
title: 数据库综合
date: 2022-04-11 16:52:35
-categories: ['数据库', '数据库综合']
-tags: ['数据库', '综合']
-permalink: /pages/84f411/
+categories:
+ - 数据库
+ - 数据库综合
+tags:
+ - 数据库
+ - 综合
+permalink: /pages/6ed13e/
---
# 数据库综合
diff --git a/docs/02.数据库中间件/01.Shardingsphere/01.ShardingSphere简介.md b/docs/02.数据库中间件/01.Shardingsphere/01.ShardingSphere简介.md
index 87243cd..0d3918b 100644
--- a/docs/02.数据库中间件/01.Shardingsphere/01.ShardingSphere简介.md
+++ b/docs/02.数据库中间件/01.Shardingsphere/01.ShardingSphere简介.md
@@ -1,9 +1,14 @@
---
title: ShardingSphere 简介
date: 2020-10-08 20:30:30
-categories: ['数据库', '数据库中间件']
-tags: ['数据库', '中间件', '分库分表']
-permalink: /pages/283bf8/
+categories:
+ - 数据库
+ - 数据库中间件
+tags:
+ - 数据库
+ - 中间件
+ - 分库分表
+permalink: /pages/560051/
---
# ShardingSphere 简介
diff --git a/docs/02.数据库中间件/01.Shardingsphere/02.ShardingSphereJdbc.md b/docs/02.数据库中间件/01.Shardingsphere/02.ShardingSphereJdbc.md
index 68e7e87..056556e 100644
--- a/docs/02.数据库中间件/01.Shardingsphere/02.ShardingSphereJdbc.md
+++ b/docs/02.数据库中间件/01.Shardingsphere/02.ShardingSphereJdbc.md
@@ -1,9 +1,14 @@
---
title: ShardingSphere Jdbc
date: 2020-12-28 00:01:28
-categories: ['数据库', '数据库中间件']
-tags: ['数据库', '中间件', '分库分表']
-permalink: /pages/77e49a/
+categories:
+ - 数据库
+ - 数据库中间件
+tags:
+ - 数据库
+ - 中间件
+ - 分库分表
+permalink: /pages/a9584d/
---
# ShardingSphere Jdbc
diff --git a/docs/02.数据库中间件/02.Flyway.md b/docs/02.数据库中间件/02.Flyway.md
index 01cccdc..1497756 100644
--- a/docs/02.数据库中间件/02.Flyway.md
+++ b/docs/02.数据库中间件/02.Flyway.md
@@ -1,9 +1,14 @@
---
title: 版本管理中间件 Flyway
date: 2019-08-22 09:02:39
-categories: ['数据库', '数据库中间件']
-tags: ['数据库', '中间件', '版本管理']
-permalink: /pages/6adeea/
+categories:
+ - 数据库
+ - 数据库中间件
+tags:
+ - 数据库
+ - 中间件
+ - 版本管理
+permalink: /pages/9f8daf/
---
# 版本管理中间件 Flyway
diff --git a/docs/02.数据库中间件/README.md b/docs/02.数据库中间件/README.md
index d09d04b..410e511 100644
--- a/docs/02.数据库中间件/README.md
+++ b/docs/02.数据库中间件/README.md
@@ -1,12 +1,16 @@
---
-title: 数据库中间件
+title: 数据库中间件和代理
date: 2022-04-11 16:52:35
-categories: ['数据库', '数据库中间件']
-tags: ['数据库', '中间件']
-permalink: /pages/057a1d/
+categories:
+ - 数据库
+ - 数据库中间件
+tags:
+ - 数据库
+ - 中间件
+permalink: /pages/02d9f1/
---
-# 数据库中间件
+# 数据库中间件和代理
## 📖 内容
@@ -16,6 +20,13 @@ permalink: /pages/057a1d/
## 📚 资料
+- [**Seata**](https://github.com/seata/seata) - 分布式事务中间件。
+- [**ShardingSphere**](https://github.com/apache/shardingsphere) - 关系型数据库读写分离、分库分表中间件。
+- [**Flyway**](https://github.com/flyway/flyway) - 关系型数据库版本管理中间件。
+- [**Canal**](https://github.com/alibaba/canal) - 基于 MySQL 的 binlog,提供增量数据订阅和消费。
+- [**Twemproxy**](https://github.com/twitter/twemproxy) - Twitter 开源的一个 Redis 和 Memcache 的中间代理服务。
+- [**Codis**](https://github.com/CodisLabs/codis) - Redis 分布式集群方案。
+
## 🚪 传送
◾ 🏠 [DB-TUTORIAL 首页](https://github.com/dunwu/db-tutorial) ◾ 🎯 [我的博客](https://github.com/dunwu/blog) ◾
diff --git a/docs/03.关系型数据库/01.综合/01.关系型数据库面试.md b/docs/03.关系型数据库/01.综合/01.关系型数据库面试.md
index 0c10d76..e2689db 100644
--- a/docs/03.关系型数据库/01.综合/01.关系型数据库面试.md
+++ b/docs/03.关系型数据库/01.综合/01.关系型数据库面试.md
@@ -1,9 +1,13 @@
---
title: 关系型数据库面试
date: 2020-01-15 23:21:02
-categories: ['数据库', '关系型数据库']
-tags: ['数据库', '关系型数据库']
-permalink: /pages/2696ef/
+categories:
+ - 数据库
+ - 关系型数据库
+tags:
+ - 数据库
+ - 关系型数据库
+permalink: /pages/c798e3/
---
# 关系型数据库面试
diff --git a/docs/03.关系型数据库/01.综合/02.SqlCheatSheet.md b/docs/03.关系型数据库/01.综合/02.SqlCheatSheet.md
index a0f5746..95cebe9 100644
--- a/docs/03.关系型数据库/01.综合/02.SqlCheatSheet.md
+++ b/docs/03.关系型数据库/01.综合/02.SqlCheatSheet.md
@@ -1,9 +1,14 @@
---
title: sql-cheat-sheet
date: 2018-06-15 16:07:17
-categories: ['数据库', '关系型数据库']
-tags: ['数据库', '关系型数据库', 'SQL']
-permalink: /pages/91ff1a/
+categories:
+ - 数据库
+ - 关系型数据库
+tags:
+ - 数据库
+ - 关系型数据库
+ - SQL
+permalink: /pages/f1c77c/
---
# SQL Cheat Sheet
diff --git a/docs/03.关系型数据库/01.综合/03.扩展SQL.md b/docs/03.关系型数据库/01.综合/03.扩展SQL.md
index 10529ae..be69c1c 100644
--- a/docs/03.关系型数据库/01.综合/03.扩展SQL.md
+++ b/docs/03.关系型数据库/01.综合/03.扩展SQL.md
@@ -1,9 +1,14 @@
---
title: 扩展 SQL
date: 2020-10-10 19:03:05
-categories: ['数据库', '关系型数据库']
-tags: ['数据库', '关系型数据库', 'SQL']
-permalink: /pages/34648b/
+categories:
+ - 数据库
+ - 关系型数据库
+tags:
+ - 数据库
+ - 关系型数据库
+ - SQL
+permalink: /pages/0f3524/
---
# 扩展 SQL
@@ -14,20 +19,43 @@ permalink: /pages/34648b/
## 表
-查看表的基本信息
+### 查看表的基本信息
```sql
SELECT * FROM information_schema.tables
WHERE table_schema = 'test' AND table_name = 'user';
```
-查看表的列信息
+### 查看表的列信息
```sql
SELECT * FROM information_schema.columns
WHERE table_schema = 'test' AND table_name = 'user';
```
+### 如何批量删除大量数据
+
+如果要根据时间范围批量删除大量数据,最简单的语句如下:
+
+```sql
+delete from orders
+where timestamp < SUBDATE(CURDATE(),INTERVAL 3 month);
+```
+
+上面的语句,大概率执行会报错,提示删除失败,因为需要删除的数据量太大了,所以需要分批删除。
+
+可以先通过一次查询,找到符合条件的历史订单中最大的那个订单 ID,然后在删除语句中把删除的条件转换成按主键删除。
+
+```sql
+select max(id) from orders
+where timestamp < SUBDATE(CURDATE(),INTERVAL 3 month);
+
+-- 分批删除,? 填上一条语句查到的最大 ID
+delete from orders
+where id <= ?
+order by id limit 1000;
+```
+
## 参考资料
- [《SQL 必知必会》](https://item.jd.com/11232698.html)
diff --git a/docs/03.关系型数据库/01.综合/README.md b/docs/03.关系型数据库/01.综合/README.md
index 3d20f04..b59a8e6 100644
--- a/docs/03.关系型数据库/01.综合/README.md
+++ b/docs/03.关系型数据库/01.综合/README.md
@@ -1,9 +1,13 @@
---
title: 关系型数据库综合知识
date: 2020-07-16 11:14:07
-categories: ['数据库', '关系型数据库']
-tags: ['数据库', '关系型数据库']
-permalink: /pages/35fa72/
+categories:
+ - 数据库
+ - 关系型数据库
+tags:
+ - 数据库
+ - 关系型数据库
+permalink: /pages/1e2ee7/
---
# 关系型数据库综合知识
diff --git a/docs/03.关系型数据库/02.Mysql/01.Mysql应用指南.md b/docs/03.关系型数据库/02.Mysql/01.Mysql应用指南.md
index 3b2b7ee..a7bef4a 100644
--- a/docs/03.关系型数据库/02.Mysql/01.Mysql应用指南.md
+++ b/docs/03.关系型数据库/02.Mysql/01.Mysql应用指南.md
@@ -1,9 +1,15 @@
---
title: Mysql 应用指南
date: 2020-07-13 10:08:37
-categories: ['数据库', '关系型数据库', 'Mysql']
-tags: ['数据库', '关系型数据库', 'Mysql']
-permalink: /pages/08cbb1/
+categories:
+ - 数据库
+ - 关系型数据库
+ - Mysql
+tags:
+ - 数据库
+ - 关系型数据库
+ - Mysql
+permalink: /pages/0b2452/
---
# Mysql 应用指南
diff --git a/docs/03.关系型数据库/02.Mysql/02.MySQL工作流.md b/docs/03.关系型数据库/02.Mysql/02.MySQL工作流.md
index ec2f004..31f51dd 100644
--- a/docs/03.关系型数据库/02.Mysql/02.MySQL工作流.md
+++ b/docs/03.关系型数据库/02.Mysql/02.MySQL工作流.md
@@ -1,9 +1,15 @@
---
title: MySQL 工作流
date: 2020-07-16 11:14:07
-categories: ['数据库', '关系型数据库', 'Mysql']
-tags: ['数据库', '关系型数据库', 'Mysql']
-permalink: /pages/58c61a/
+categories:
+ - 数据库
+ - 关系型数据库
+ - Mysql
+tags:
+ - 数据库
+ - 关系型数据库
+ - Mysql
+permalink: /pages/0a031b/
---
# MySQL 工作流
diff --git a/docs/03.关系型数据库/02.Mysql/03.Mysql事务.md b/docs/03.关系型数据库/02.Mysql/03.Mysql事务.md
index 7af0eb5..72ee41f 100644
--- a/docs/03.关系型数据库/02.Mysql/03.Mysql事务.md
+++ b/docs/03.关系型数据库/02.Mysql/03.Mysql事务.md
@@ -1,9 +1,16 @@
---
title: Mysql 事务
date: 2020-06-03 19:32:09
-categories: ['数据库', '关系型数据库', 'Mysql']
-tags: ['数据库', '关系型数据库', 'Mysql', '事务']
-permalink: /pages/d0add6/
+categories:
+ - 数据库
+ - 关系型数据库
+ - Mysql
+tags:
+ - 数据库
+ - 关系型数据库
+ - Mysql
+ - 事务
+permalink: /pages/f3295c/
---
# Mysql 事务
diff --git a/docs/03.关系型数据库/02.Mysql/04.Mysql锁.md b/docs/03.关系型数据库/02.Mysql/04.Mysql锁.md
index efeeb2c..d2e791c 100644
--- a/docs/03.关系型数据库/02.Mysql/04.Mysql锁.md
+++ b/docs/03.关系型数据库/02.Mysql/04.Mysql锁.md
@@ -1,9 +1,16 @@
---
title: Mysql 锁
date: 2020-09-07 07:54:19
-categories: ['数据库', '关系型数据库', 'Mysql']
-tags: ['数据库', '关系型数据库', 'Mysql', '锁']
-permalink: /pages/dcd4a7/
+categories:
+ - 数据库
+ - 关系型数据库
+ - Mysql
+tags:
+ - 数据库
+ - 关系型数据库
+ - Mysql
+ - 锁
+permalink: /pages/86db3b/
---
# Mysql 锁
diff --git a/docs/03.关系型数据库/02.Mysql/05.Mysql索引.md b/docs/03.关系型数据库/02.Mysql/05.Mysql索引.md
index dcc67c2..ebbea7d 100644
--- a/docs/03.关系型数据库/02.Mysql/05.Mysql索引.md
+++ b/docs/03.关系型数据库/02.Mysql/05.Mysql索引.md
@@ -1,9 +1,16 @@
---
title: Mysql 索引
date: 2020-07-16 11:14:07
-categories: ['数据库', '关系型数据库', 'Mysql']
-tags: ['数据库', '关系型数据库', 'Mysql', '索引']
-permalink: /pages/aa6a1a/
+categories:
+ - 数据库
+ - 关系型数据库
+ - Mysql
+tags:
+ - 数据库
+ - 关系型数据库
+ - Mysql
+ - 索引
+permalink: /pages/516ac6/
---
# Mysql 索引
diff --git a/docs/03.关系型数据库/02.Mysql/06.Mysql性能优化.md b/docs/03.关系型数据库/02.Mysql/06.Mysql性能优化.md
index bbb6641..f3e55da 100644
--- a/docs/03.关系型数据库/02.Mysql/06.Mysql性能优化.md
+++ b/docs/03.关系型数据库/02.Mysql/06.Mysql性能优化.md
@@ -1,9 +1,16 @@
---
title: Mysql 性能优化
date: 2020-06-03 20:16:48
-categories: ['数据库', '关系型数据库', 'Mysql']
-tags: ['数据库', '关系型数据库', 'Mysql', '性能']
-permalink: /pages/387d10/
+categories:
+ - 数据库
+ - 关系型数据库
+ - Mysql
+tags:
+ - 数据库
+ - 关系型数据库
+ - Mysql
+ - 性能
+permalink: /pages/8c404f/
---
# Mysql 性能优化
diff --git a/docs/03.关系型数据库/02.Mysql/20.Mysql运维.md b/docs/03.关系型数据库/02.Mysql/20.Mysql运维.md
index 78dd266..085c85a 100644
--- a/docs/03.关系型数据库/02.Mysql/20.Mysql运维.md
+++ b/docs/03.关系型数据库/02.Mysql/20.Mysql运维.md
@@ -1,9 +1,16 @@
---
title: Mysql 运维
date: 2019-11-26 21:37:17
-categories: ['数据库', '关系型数据库', 'Mysql']
-tags: ['数据库', '关系型数据库', 'Mysql', '运维']
-permalink: /pages/4e960f/
+categories:
+ - 数据库
+ - 关系型数据库
+ - Mysql
+tags:
+ - 数据库
+ - 关系型数据库
+ - Mysql
+ - 运维
+permalink: /pages/ada3b2/
---
# Mysql 运维
diff --git a/docs/03.关系型数据库/02.Mysql/21.Mysql配置.md b/docs/03.关系型数据库/02.Mysql/21.Mysql配置.md
index 44f3d35..ed1cbe8 100644
--- a/docs/03.关系型数据库/02.Mysql/21.Mysql配置.md
+++ b/docs/03.关系型数据库/02.Mysql/21.Mysql配置.md
@@ -1,9 +1,16 @@
---
title: Mysql 配置
date: 2020-02-29 22:32:57
-categories: ['数据库', '关系型数据库', 'Mysql']
-tags: ['数据库', '关系型数据库', 'Mysql', '配置']
-permalink: /pages/423d2d/
+categories:
+ - 数据库
+ - 关系型数据库
+ - Mysql
+tags:
+ - 数据库
+ - 关系型数据库
+ - Mysql
+ - 配置
+permalink: /pages/6ed8d9/
---
# Mysql 配置
diff --git a/docs/03.关系型数据库/02.Mysql/99.Mysql常见问题.md b/docs/03.关系型数据库/02.Mysql/99.Mysql常见问题.md
index bc9095f..abf4a3c 100644
--- a/docs/03.关系型数据库/02.Mysql/99.Mysql常见问题.md
+++ b/docs/03.关系型数据库/02.Mysql/99.Mysql常见问题.md
@@ -1,9 +1,16 @@
---
title: Mysql 常见问题
date: 2020-09-12 10:43:53
-categories: ['数据库', '关系型数据库', 'Mysql']
-tags: ['数据库', '关系型数据库', 'Mysql', 'FAQ']
-permalink: /pages/ea9962/
+categories:
+ - 数据库
+ - 关系型数据库
+ - Mysql
+tags:
+ - 数据库
+ - 关系型数据库
+ - Mysql
+ - FAQ
+permalink: /pages/5885bb/
---
# Mysql 常见问题
diff --git a/docs/03.关系型数据库/02.Mysql/README.md b/docs/03.关系型数据库/02.Mysql/README.md
index aba5d7c..7e53840 100644
--- a/docs/03.关系型数据库/02.Mysql/README.md
+++ b/docs/03.关系型数据库/02.Mysql/README.md
@@ -1,9 +1,15 @@
---
title: Mysql 教程
date: 2020-02-10 14:27:39
-categories: ['数据库', '关系型数据库', 'Mysql']
-tags: ['数据库', '关系型数据库', 'Mysql']
-permalink: /pages/f29f7c/
+categories:
+ - 数据库
+ - 关系型数据库
+ - Mysql
+tags:
+ - 数据库
+ - 关系型数据库
+ - Mysql
+permalink: /pages/a7b923/
---
# Mysql 教程
diff --git a/docs/03.关系型数据库/99.其他/01.PostgreSQL.md b/docs/03.关系型数据库/99.其他/01.PostgreSQL.md
index 15bccf6..46136fa 100644
--- a/docs/03.关系型数据库/99.其他/01.PostgreSQL.md
+++ b/docs/03.关系型数据库/99.其他/01.PostgreSQL.md
@@ -1,9 +1,14 @@
---
title: PostgreSQL 应用指南
date: 2019-08-22 09:02:39
-categories: ['数据库', '关系型数据库']
-tags: ['数据库', '关系型数据库', 'PostgreSQL']
-permalink: /pages/bb2260/
+categories:
+ - 数据库
+ - 关系型数据库
+tags:
+ - 数据库
+ - 关系型数据库
+ - PostgreSQL
+permalink: /pages/1d898b/
---
# PostgreSQL 应用指南
diff --git a/docs/03.关系型数据库/99.其他/02.H2.md b/docs/03.关系型数据库/99.其他/02.H2.md
index ca06308..b88cf1b 100644
--- a/docs/03.关系型数据库/99.其他/02.H2.md
+++ b/docs/03.关系型数据库/99.其他/02.H2.md
@@ -1,9 +1,14 @@
---
title: H2 应用指南
date: 2019-08-22 09:02:39
-categories: ['数据库', '关系型数据库']
-tags: ['数据库', '关系型数据库', 'H2']
-permalink: /pages/d15410/
+categories:
+ - 数据库
+ - 关系型数据库
+tags:
+ - 数据库
+ - 关系型数据库
+ - H2
+permalink: /pages/87d312/
---
# H2 应用指南
diff --git a/docs/03.关系型数据库/99.其他/03.Sqlite.md b/docs/03.关系型数据库/99.其他/03.Sqlite.md
index 7b6a354..eebee60 100644
--- a/docs/03.关系型数据库/99.其他/03.Sqlite.md
+++ b/docs/03.关系型数据库/99.其他/03.Sqlite.md
@@ -1,9 +1,14 @@
---
title: sqlite
date: 2019-08-22 09:02:39
-categories: ['数据库', '关系型数据库']
-tags: ['数据库', '关系型数据库', 'SQLite']
-permalink: /pages/ec4fc2/
+categories:
+ - 数据库
+ - 关系型数据库
+tags:
+ - 数据库
+ - 关系型数据库
+ - SQLite
+permalink: /pages/d024ff/
---
# SQLite
diff --git a/docs/03.关系型数据库/99.其他/README.md b/docs/03.关系型数据库/99.其他/README.md
index 916d50c..53c8fdc 100644
--- a/docs/03.关系型数据库/99.其他/README.md
+++ b/docs/03.关系型数据库/99.其他/README.md
@@ -1,9 +1,13 @@
---
title: 关系型数据库其他知识
date: 2022-04-11 16:52:35
-categories: ['数据库', '关系型数据库']
-tags: ['数据库', '关系型数据库']
-permalink: /pages/d64774/
+categories:
+ - 数据库
+ - 关系型数据库
+tags:
+ - 数据库
+ - 关系型数据库
+permalink: /pages/b2560d/
---
# 关系型数据库其他知识
diff --git a/docs/03.关系型数据库/README.md b/docs/03.关系型数据库/README.md
index 560c393..4ea03f0 100644
--- a/docs/03.关系型数据库/README.md
+++ b/docs/03.关系型数据库/README.md
@@ -1,9 +1,13 @@
---
title: 关系型数据库
date: 2022-04-11 16:52:35
-categories: ['数据库', '关系型数据库']
-tags: ['数据库', '关系型数据库']
-permalink: /pages/ba3eb1/
+categories:
+ - 数据库
+ - 关系型数据库
+tags:
+ - 数据库
+ - 关系型数据库
+permalink: /pages/bdd9ad/
---
# 关系型数据库
diff --git a/docs/04.文档数据库/01.MongoDB/01.MongoDB应用指南.md b/docs/04.文档数据库/01.MongoDB/01.MongoDB应用指南.md
index 8646713..b6058cd 100644
--- a/docs/04.文档数据库/01.MongoDB/01.MongoDB应用指南.md
+++ b/docs/04.文档数据库/01.MongoDB/01.MongoDB应用指南.md
@@ -1,9 +1,15 @@
---
title: MongoDB 应用指南
date: 2020-09-07 07:54:19
-categories: ['数据库', '文档数据库', 'MongoDB']
-tags: ['数据库', '文档数据库', 'MongoDB']
-permalink: /pages/b4209b/
+categories:
+ - 数据库
+ - 文档数据库
+ - MongoDB
+tags:
+ - 数据库
+ - 文档数据库
+ - MongoDB
+permalink: /pages/56d5b6/
---
# MongoDB 应用指南
diff --git a/docs/04.文档数据库/01.MongoDB/02.MongoDB的CRUD操作.md b/docs/04.文档数据库/01.MongoDB/02.MongoDB的CRUD操作.md
index f4156f9..fd2f83a 100644
--- a/docs/04.文档数据库/01.MongoDB/02.MongoDB的CRUD操作.md
+++ b/docs/04.文档数据库/01.MongoDB/02.MongoDB的CRUD操作.md
@@ -1,9 +1,15 @@
---
title: MongoDB 的 CRUD 操作
date: 2020-09-25 21:23:41
-categories: ['数据库', '文档数据库', 'MongoDB']
-tags: ['数据库', '文档数据库', 'MongoDB']
-permalink: /pages/d930e5/
+categories:
+ - 数据库
+ - 文档数据库
+ - MongoDB
+tags:
+ - 数据库
+ - 文档数据库
+ - MongoDB
+permalink: /pages/d69d64/
---
# MongoDB 的 CRUD 操作
diff --git a/docs/04.文档数据库/01.MongoDB/03.MongoDB的聚合操作.md b/docs/04.文档数据库/01.MongoDB/03.MongoDB的聚合操作.md
index b27b997..43c3161 100644
--- a/docs/04.文档数据库/01.MongoDB/03.MongoDB的聚合操作.md
+++ b/docs/04.文档数据库/01.MongoDB/03.MongoDB的聚合操作.md
@@ -1,9 +1,16 @@
---
title: MongoDB 的聚合操作
date: 2020-09-21 21:22:57
-categories: ['数据库', '文档数据库', 'MongoDB']
-tags: ['数据库', '文档数据库', 'MongoDB', '聚合']
-permalink: /pages/4abdcc/
+categories:
+ - 数据库
+ - 文档数据库
+ - MongoDB
+tags:
+ - 数据库
+ - 文档数据库
+ - MongoDB
+ - 聚合
+permalink: /pages/2698b2/
---
# MongoDB 的聚合操作
diff --git a/docs/04.文档数据库/01.MongoDB/04.MongoDB事务.md b/docs/04.文档数据库/01.MongoDB/04.MongoDB事务.md
index d05f100..a4f741b 100644
--- a/docs/04.文档数据库/01.MongoDB/04.MongoDB事务.md
+++ b/docs/04.文档数据库/01.MongoDB/04.MongoDB事务.md
@@ -1,9 +1,16 @@
---
title: MongoDB 事务
date: 2020-09-20 23:12:17
-categories: ['数据库', '文档数据库', 'MongoDB']
-tags: ['数据库', '文档数据库', 'MongoDB', '事务']
-permalink: /pages/368234/
+categories:
+ - 数据库
+ - 文档数据库
+ - MongoDB
+tags:
+ - 数据库
+ - 文档数据库
+ - MongoDB
+ - 事务
+permalink: /pages/3287fa/
---
# MongoDB 事务
diff --git a/docs/04.文档数据库/01.MongoDB/05.MongoDB建模.md b/docs/04.文档数据库/01.MongoDB/05.MongoDB建模.md
index 54baefd..ddc703b 100644
--- a/docs/04.文档数据库/01.MongoDB/05.MongoDB建模.md
+++ b/docs/04.文档数据库/01.MongoDB/05.MongoDB建模.md
@@ -1,9 +1,16 @@
---
title: MongoDB 建模
date: 2020-09-09 20:47:14
-categories: ['数据库', '文档数据库', 'MongoDB']
-tags: ['数据库', '文档数据库', 'MongoDB', '建模']
-permalink: /pages/e81890/
+categories:
+ - 数据库
+ - 文档数据库
+ - MongoDB
+tags:
+ - 数据库
+ - 文档数据库
+ - MongoDB
+ - 建模
+permalink: /pages/c154c4/
---
# MongoDB 建模
diff --git a/docs/04.文档数据库/01.MongoDB/06.MongoDB建模示例.md b/docs/04.文档数据库/01.MongoDB/06.MongoDB建模示例.md
index 680990a..a57ef3c 100644
--- a/docs/04.文档数据库/01.MongoDB/06.MongoDB建模示例.md
+++ b/docs/04.文档数据库/01.MongoDB/06.MongoDB建模示例.md
@@ -1,9 +1,16 @@
---
title: MongoDB 建模示例
date: 2020-09-12 10:43:53
-categories: ['数据库', '文档数据库', 'MongoDB']
-tags: ['数据库', '文档数据库', 'MongoDB', '建模']
-permalink: /pages/bfc4a1/
+categories:
+ - 数据库
+ - 文档数据库
+ - MongoDB
+tags:
+ - 数据库
+ - 文档数据库
+ - MongoDB
+ - 建模
+permalink: /pages/646187/
---
# MongoDB 建模示例
diff --git a/docs/04.文档数据库/01.MongoDB/07.MongoDB索引.md b/docs/04.文档数据库/01.MongoDB/07.MongoDB索引.md
index ec459b7..befbd1c 100644
--- a/docs/04.文档数据库/01.MongoDB/07.MongoDB索引.md
+++ b/docs/04.文档数据库/01.MongoDB/07.MongoDB索引.md
@@ -1,9 +1,16 @@
---
title: MongoDB 索引
date: 2020-09-21 21:22:57
-categories: ['数据库', '文档数据库', 'MongoDB']
-tags: ['数据库', '文档数据库', 'MongoDB', '索引']
-permalink: /pages/580732/
+categories:
+ - 数据库
+ - 文档数据库
+ - MongoDB
+tags:
+ - 数据库
+ - 文档数据库
+ - MongoDB
+ - 索引
+permalink: /pages/1c75d4/
---
# MongoDB 索引
diff --git a/docs/04.文档数据库/01.MongoDB/08.MongoDB复制.md b/docs/04.文档数据库/01.MongoDB/08.MongoDB复制.md
index ee0a5df..1cb53e8 100644
--- a/docs/04.文档数据库/01.MongoDB/08.MongoDB复制.md
+++ b/docs/04.文档数据库/01.MongoDB/08.MongoDB复制.md
@@ -1,9 +1,16 @@
---
title: MongoDB 复制
date: 2020-09-20 23:12:17
-categories: ['数据库', '文档数据库', 'MongoDB']
-tags: ['数据库', '文档数据库', 'MongoDB', '复制']
-permalink: /pages/b2f73d/
+categories:
+ - 数据库
+ - 文档数据库
+ - MongoDB
+tags:
+ - 数据库
+ - 文档数据库
+ - MongoDB
+ - 复制
+permalink: /pages/e0b65c/
---
# MongoDB 复制
diff --git a/docs/04.文档数据库/01.MongoDB/09.MongoDB分片.md b/docs/04.文档数据库/01.MongoDB/09.MongoDB分片.md
index b226ebb..dac55c9 100644
--- a/docs/04.文档数据库/01.MongoDB/09.MongoDB分片.md
+++ b/docs/04.文档数据库/01.MongoDB/09.MongoDB分片.md
@@ -1,9 +1,16 @@
---
title: MongoDB 分片
date: 2020-09-20 23:12:17
-categories: ['数据库', '文档数据库', 'MongoDB']
-tags: ['数据库', '文档数据库', 'MongoDB', '分片']
-permalink: /pages/ba092a/
+categories:
+ - 数据库
+ - 文档数据库
+ - MongoDB
+tags:
+ - 数据库
+ - 文档数据库
+ - MongoDB
+ - 分片
+permalink: /pages/34b182/
---
# MongoDB 分片
diff --git a/docs/04.文档数据库/01.MongoDB/20.MongoDB运维.md b/docs/04.文档数据库/01.MongoDB/20.MongoDB运维.md
index 23368a1..35863ec 100644
--- a/docs/04.文档数据库/01.MongoDB/20.MongoDB运维.md
+++ b/docs/04.文档数据库/01.MongoDB/20.MongoDB运维.md
@@ -1,9 +1,16 @@
---
title: MongoDB 运维
date: 2020-09-09 20:47:14
-categories: ['数据库', '文档数据库', 'MongoDB']
-tags: ['数据库', '文档数据库', 'MongoDB', '运维']
-permalink: /pages/7d487e/
+categories:
+ - 数据库
+ - 文档数据库
+ - MongoDB
+tags:
+ - 数据库
+ - 文档数据库
+ - MongoDB
+ - 运维
+permalink: /pages/ce58ab/
---
# MongoDB 运维
diff --git a/docs/04.文档数据库/01.MongoDB/README.md b/docs/04.文档数据库/01.MongoDB/README.md
index 4b4cb7e..778fa2c 100644
--- a/docs/04.文档数据库/01.MongoDB/README.md
+++ b/docs/04.文档数据库/01.MongoDB/README.md
@@ -1,9 +1,15 @@
---
title: MongoDB 教程
date: 2020-09-09 20:47:14
-categories: ['数据库', '文档数据库', 'MongoDB']
-tags: ['数据库', '文档数据库', 'MongoDB']
-permalink: /pages/102927/
+categories:
+ - 数据库
+ - 文档数据库
+ - MongoDB
+tags:
+ - 数据库
+ - 文档数据库
+ - MongoDB
+permalink: /pages/86cece/
---
# MongoDB 教程
diff --git a/docs/05.KV数据库/01.Redis/01.Redis面试总结.md b/docs/05.KV数据库/01.Redis/01.Redis面试总结.md
index ac49d1b..5ad284f 100644
--- a/docs/05.KV数据库/01.Redis/01.Redis面试总结.md
+++ b/docs/05.KV数据库/01.Redis/01.Redis面试总结.md
@@ -1,9 +1,16 @@
---
title: Redis 面试总结
date: 2020-07-13 17:03:42
-categories: ['数据库', 'KV数据库', 'Redis']
-tags: ['数据库', 'KV数据库', 'Redis', '面试']
-permalink: /pages/b30618/
+categories:
+ - 数据库
+ - KV数据库
+ - Redis
+tags:
+ - 数据库
+ - KV数据库
+ - Redis
+ - 面试
+permalink: /pages/c3ce07/
---
# Redis 面试总结
diff --git a/docs/05.KV数据库/01.Redis/02.Redis应用指南.md b/docs/05.KV数据库/01.Redis/02.Redis应用指南.md
index a731681..ec5443c 100644
--- a/docs/05.KV数据库/01.Redis/02.Redis应用指南.md
+++ b/docs/05.KV数据库/01.Redis/02.Redis应用指南.md
@@ -1,9 +1,15 @@
---
title: Redis 应用指南
date: 2020-01-30 21:48:57
-categories: ['数据库', 'KV数据库', 'Redis']
-tags: ['数据库', 'KV数据库', 'Redis']
-permalink: /pages/2694e2/
+categories:
+ - 数据库
+ - KV数据库
+ - Redis
+tags:
+ - 数据库
+ - KV数据库
+ - Redis
+permalink: /pages/5cd883/
---
# Redis 应用指南
diff --git a/docs/05.KV数据库/01.Redis/03.Redis数据类型和应用.md b/docs/05.KV数据库/01.Redis/03.Redis数据类型和应用.md
index 8162114..24703f7 100644
--- a/docs/05.KV数据库/01.Redis/03.Redis数据类型和应用.md
+++ b/docs/05.KV数据库/01.Redis/03.Redis数据类型和应用.md
@@ -1,9 +1,16 @@
---
title: Redis 数据类型和应用
date: 2020-06-24 10:45:38
-categories: ['数据库', 'KV数据库', 'Redis']
-tags: ['数据库', 'KV数据库', 'Redis', '数据类型']
-permalink: /pages/ee52c4/
+categories:
+ - 数据库
+ - KV数据库
+ - Redis
+tags:
+ - 数据库
+ - KV数据库
+ - Redis
+ - 数据类型
+permalink: /pages/5d2de2/
---
# Redis 数据类型和应用
@@ -248,7 +255,7 @@ OK
Redis 的 `SORT` 命令可以对 `LIST`、`SET`、`ZSET` 进行排序。
| 命令 | 描述 |
-| ------ | --------------------------------------------------------------------------------------- |
+| ------ | --------------------------------------------------------------------------------------- |
| `SORT` | `SORT source-key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC | DESC] [ALPHA] [STORE dest-key]`—根据给定选项,对输入 `LIST`、`SET`、`ZSET` 进行排序,然后返回或存储排序的结果。 |
示例:
diff --git a/docs/05.KV数据库/01.Redis/04.Redis持久化.md b/docs/05.KV数据库/01.Redis/04.Redis持久化.md
index 60b3e26..55cc1ce 100644
--- a/docs/05.KV数据库/01.Redis/04.Redis持久化.md
+++ b/docs/05.KV数据库/01.Redis/04.Redis持久化.md
@@ -1,9 +1,16 @@
---
title: Redis 持久化
date: 2020-06-24 10:45:38
-categories: ['数据库', 'KV数据库', 'Redis']
-tags: ['数据库', 'KV数据库', 'Redis', '持久化']
-permalink: /pages/2d1fde/
+categories:
+ - 数据库
+ - KV数据库
+ - Redis
+tags:
+ - 数据库
+ - KV数据库
+ - Redis
+ - 持久化
+permalink: /pages/d61faa/
---
# Redis 持久化
diff --git a/docs/05.KV数据库/01.Redis/05.Redis复制.md b/docs/05.KV数据库/01.Redis/05.Redis复制.md
index 0a22631..a4360e8 100644
--- a/docs/05.KV数据库/01.Redis/05.Redis复制.md
+++ b/docs/05.KV数据库/01.Redis/05.Redis复制.md
@@ -1,9 +1,16 @@
---
title: Redis 复制
date: 2020-06-24 10:45:38
-categories: ['数据库', 'KV数据库', 'Redis']
-tags: ['数据库', 'KV数据库', 'Redis', '复制']
-permalink: /pages/36a040/
+categories:
+ - 数据库
+ - KV数据库
+ - Redis
+tags:
+ - 数据库
+ - KV数据库
+ - Redis
+ - 复制
+permalink: /pages/0de16b/
---
# Redis 复制
diff --git a/docs/05.KV数据库/01.Redis/06.Redis哨兵.md b/docs/05.KV数据库/01.Redis/06.Redis哨兵.md
index 4cbe23e..6a37ffa 100644
--- a/docs/05.KV数据库/01.Redis/06.Redis哨兵.md
+++ b/docs/05.KV数据库/01.Redis/06.Redis哨兵.md
@@ -1,9 +1,16 @@
---
title: Redis 哨兵
date: 2020-06-24 10:45:38
-categories: ['数据库', 'KV数据库', 'Redis']
-tags: ['数据库', 'KV数据库', 'Redis', '哨兵']
-permalink: /pages/06cb53/
+categories:
+ - 数据库
+ - KV数据库
+ - Redis
+tags:
+ - 数据库
+ - KV数据库
+ - Redis
+ - 哨兵
+permalink: /pages/5e23fc/
---
# Redis 哨兵
diff --git a/docs/05.KV数据库/01.Redis/07.Redis集群.md b/docs/05.KV数据库/01.Redis/07.Redis集群.md
index 102358f..636f8eb 100644
--- a/docs/05.KV数据库/01.Redis/07.Redis集群.md
+++ b/docs/05.KV数据库/01.Redis/07.Redis集群.md
@@ -1,9 +1,16 @@
---
title: Redis 集群
date: 2020-06-24 10:45:38
-categories: ['数据库', 'KV数据库', 'Redis']
-tags: ['数据库', 'KV数据库', 'Redis', '集群']
-permalink: /pages/6772f8/
+categories:
+ - 数据库
+ - KV数据库
+ - Redis
+tags:
+ - 数据库
+ - KV数据库
+ - Redis
+ - 集群
+permalink: /pages/6b0eb1/
---
# Redis 集群
@@ -12,15 +19,15 @@ permalink: /pages/6772f8/
>
> 既然是分布式,自然具备分布式系统的基本特性:可扩展、高可用、一致性。
>
-> - Redis 集群通过划分 hash 槽来分片,进行数据分享。
+> - Redis 集群通过划分 hash 槽来分区,进行数据分享。
> - Redis 集群采用主从模型,提供复制和故障转移功能,来保证 Redis 集群的高可用。
> - 根据 CAP 理论,Consistency、Availability、Partition tolerance 三者不可兼得,而 Redis 集群的选择是 AP。Redis 集群节点间采用异步通信方式,不保证强一致性,尽力达到最终一致性。
![img](https://raw.githubusercontent.com/dunwu/images/dev/snap/20200713100613.png)
-## 一、Redis Cluster 分区
+## 1. Redis Cluster 分区
-### 集群节点
+### 1.1. 集群节点
Redis 集群由多个节点组成,节点刚启动时,彼此是相互独立的。**节点通过握手( `CLUSTER MEET` 命令)来将其他节点添加到自己所处的集群中**。
@@ -30,11 +37,11 @@ Redis 集群由多个节点组成,节点刚启动时,彼此是相互独立
Redis 集群节点分为主节点(master)和从节点(slave),其中主节点用于处理槽,而从节点则用于复制某个主节点,并在被复制的主节点下线时,代替下线主节点继续处理命令请求。
-### 分配 Hash 槽
+### 1.2. 分配 Hash 槽
分布式存储需要解决的首要问题是把 **整个数据集** 按照 **分区规则** 映射到 **多个节点** 的问题,即把 **数据集** 划分到 **多个节点** 上,每个节点负责 **整体数据** 的一个 **子集**。
-**Redis 集群通过划分 hash 槽来将数据分区**。Redis 集群通过分片的方式来保存数据库的键值对:**集群的整个数据库被分为 16384 个哈希槽(slot)**,数据库中的每个键都属于这 16384 个槽的其中一个,集群中的每个节点可以处理 0 个或最多 16384 个槽。**如果数据库中有任何一个槽没有得到处理,那么集群处于下线状态**。
+**Redis 集群通过划分 hash 槽来将数据分区**。Redis 集群通过分区的方式来保存数据库的键值对:**集群的整个数据库被分为 16384 个哈希槽(slot)**,数据库中的每个键都属于这 16384 个槽的其中一个,集群中的每个节点可以处理 0 个或最多 16384 个槽。**如果数据库中有任何一个槽没有得到处理,那么集群处于下线状态**。
通过向节点发送 [`CLUSTER ADDSLOTS`](https://redis.io/commands/cluster-addslots) 命令,可以将一个或多个槽指派给节点负责。
@@ -49,19 +56,19 @@ OK
- 节点B存储的哈希槽范围是:5501 – 11000
- 节点C存储的哈希槽范围是:11001 – 16384
-### 寻址
+### 1.3. 寻址
当客户端向节点发送与数据库键有关的命令时,接受命令的节点会**计算出命令要处理的数据库属于哪个槽**,并**检查这个槽是否指派给了自己**:
- 如果键所在的槽正好指派给了当前节点,那么当前节点直接执行命令。
- 如果键所在的槽没有指派给当前节点,那么节点会向客户端返回一个 MOVED 错误,指引客户端重定向至正确的节点。
-#### 计算键属于哪个槽
+#### 1.3.1. 计算键属于哪个槽
决定一个 key 应该分配到那个槽的算法是:**计算该 key 的 CRC16 结果再模 16834**。
```
-slot = CRC16(KEY) & 16384
+HASH_SLOT = CRC16(KEY) mod 16384
```
当节点计算出 key 所属的槽为 i 之后,节点会根据以下条件判断槽是否由自己负责:
@@ -70,7 +77,7 @@ slot = CRC16(KEY) & 16384
clusterState.slots[i] == clusterState.myself
```
-#### MOVED 错误
+#### 1.3.2. MOVED 错误
当节点发现键所在的槽并非自己负责处理的时候,节点就会向客户端返回一个 `MOVED` 错误,指引客户端转向正在负责槽的节点。
@@ -82,33 +89,33 @@ MOVED :
> 个人理解:MOVED 这种操作有点类似 HTTP 协议中的重定向。
-### 重新分片
+### 1.4. 重新分区
-Redis 集群的**重新分片操作可以将任意数量的已经指派给某个节点(源节点)的槽改为指派给另一个节点(目标节点),并且相关槽所属的键值对也会从源节点被移动到目标节点**。
+Redis 集群的**重新分区操作可以将任意数量的已经指派给某个节点(源节点)的槽改为指派给另一个节点(目标节点),并且相关槽所属的键值对也会从源节点被移动到目标节点**。
-重新分片操作**可以在线进**行,在重新分片的过程中,集群不需要下线,并且源节点和目标节点都可以继续处理命令请求。
+重新分区操作**可以在线进**行,在重新分区的过程中,集群不需要下线,并且源节点和目标节点都可以继续处理命令请求。
-Redis 集群的重新分片操作由 Redis 集群管理软件 **redis-trib** 负责执行的,redis-trib 通过向源节点和目标节点发送命令来进行重新分片操作。
+Redis 集群的重新分区操作由 Redis 集群管理软件 **redis-trib** 负责执行的,redis-trib 通过向源节点和目标节点发送命令来进行重新分区操作。
-重新分片的实现原理如下图所示:
+重新分区的实现原理如下图所示:
![img](https://raw.githubusercontent.com/dunwu/images/dev/cs/database/redis/redis-cluster-trib.png)
-### ASK 错误
+### 1.5. ASK 错误
-`ASK` 错误与 `MOVED` 的区别在于:**ASK 错误只是两个节点在迁移槽的过程中使用的一种临时措施**,在客户端收到关于槽 i 的 ASK 错误之后,客户端只会在接下来的一次命令请求中将关于槽 i 的命令请求发送至 ASK 错误所指示的节点,但这种转向不会对客户端今后发送关于槽 i 的命令请求产生任何影响,客户端仍然会将关于槽 i 的命令请求发送至目前负责处理槽 i 的节点,除非 ASK 错误再次出现。
+`ASK` 错误与 `MOVED` 的区别在于:**ASK 错误只是两个节点在迁移槽的过程中使用的一种临时措施**,在客户端收到关于槽 X 的 ASK 错误之后,客户端只会在接下来的一次命令请求中将关于槽 X 的命令请求发送至 ASK 错误所指示的节点,但这种转向不会对客户端今后发送关于槽 X 的命令请求产生任何影响,客户端仍然会将关于槽 X 的命令请求发送至目前负责处理槽 X 的节点,除非 ASK 错误再次出现。
判断 ASK 错误的过程如下图所示:
![img](https://raw.githubusercontent.com/dunwu/images/dev/cs/database/redis/redis-ask.png)
-## 二、Redis Cluster 故障转移
+## 2. Redis Cluster 故障转移
-### 复制
+### 2.1. 复制
Redis 复制机制可以参考:[Redis 复制](docs/05.KV数据库/01.Redis/05.Redis复制.md)
-### 故障检测
+### 2.2. 故障检测
**集群中每个节点都会定期向集群中的其他节点发送 PING 消息,以此来检测对方是否在线**。
@@ -120,18 +127,18 @@ Redis 复制机制可以参考:[Redis 复制](docs/05.KV数据库/01.Redis/05.
- 疑似下线状态(PFAIL),即在规定的时间内,没有应答 PING 消息;
-### 故障转移
+### 2.3. 故障转移
1. 下线主节点的所有从节点中,会有一个从节点被选中。
2. 被选中的从节点会执行 `SLAVEOF no one` 命令,成为新的主节点。
3. 新的主节点会撤销所有对已下线主节点的槽指派,并将这些槽全部指派给自己。
4. 新的主节点向集群广播一条 PONG 消息,告知其他节点这个从节点已变成主节点。
-#### 选举新的主节点
+### 2.4. 选举新的主节点
Redis 集群选举新的主节点流程基于[共识算法:Raft](https://www.jianshu.com/p/8e4bbe7e276c)
-## 三、Redis Cluster 通信
+## 3. Redis Cluster 通信
集群中的节点通过发送和接收消息来进行通信。
@@ -143,33 +150,35 @@ Redis 集群节点发送的消息主要有以下五种:
- `FAIL` - 当一个主节点 A 判断另一个主节点 B 已经进入 FAIL 状态时,节点 A 会向集群广播一条关于节点 B 的 FAIL 消息,所有收到这条消息的节点都会立即将节点 B 标记为已下线。
- `PUBLISH` - 当节点收到一个 PUBLISH 命令时,节点会执行这个命令,并向集群广播一条 PUBLISH 消息,所有接受到这条消息的节点都会执行相同的 PUBLISH 命令。
-## 四、Redis Cluster 应用
+## 4. Redis Cluster 应用
-### 集群限制
+### 4.1. 集群功能限制
-`Redis` 集群相对 **单机** 在功能上存在一些限制,需要 **开发人员** 提前了解,在使用时做好规避。
+Redis 集群相对 **单机**,存在一些功能限制,需要 **开发人员** 提前了解,在使用时做好规避。
-- `key` **批量操作** 支持有限。
+- `key` **批量操作** 支持有限:类似 `mset`、`mget` 操作,目前只支持对具有相同 `slot` 值的 `key` 执行 **批量操作**。对于 **映射为不同** `slot` 值的 `key` 由于执行 `mget`、`mget` 等操作可能存在于多个节点上,因此不被支持。
-类似 `mset`、`mget` 操作,目前只支持对具有相同 `slot` 值的 `key` 执行 **批量操作**。对于 **映射为不同** `slot` 值的 `key` 由于执行 `mget`、`mget` 等操作可能存在于多个节点上,因此不被支持。
+- `key` **事务操作** 支持有限:只支持 **多** `key` 在 **同一节点上** 的 **事务操作**,当多个 `key` 分布在 **不同** 的节点上时 **无法** 使用事务功能。
-- `key` **事务操作** 支持有限。
+- `key` 作为 **数据分区** 的最小粒度,不能将一个 **大的键值** 对象如 `hash`、`list` 等映射到 **不同的节点**。
-只支持 **多** `key` 在 **同一节点上** 的 **事务操作**,当多个 `key` 分布在 **不同** 的节点上时 **无法** 使用事务功能。
+- 不支持 **多数据库空间**:**单机** 下的 Redis 可以支持 `16` 个数据库(`db0 ~ db15`),**集群模式** 下只能使用 **一个** 数据库空间,即 `db0`。
-- `key` 作为 **数据分区** 的最小粒度
+- **复制结构** 只支持一层:**从节点** 只能复制 **主节点**,不支持 **嵌套树状复制** 结构。
-不能将一个 **大的键值** 对象如 `hash`、`list` 等映射到 **不同的节点**。
+### 4.2. 集群规模限制
-- 不支持 **多数据库空间**
+Redis Cluster 的优点是易于使用。分区、主从复制、弹性扩容这些功能都可以做到自动化,通过简单的部署就可以获得一个大容量、高可靠、高可用的 Redis 集群,并且对于应用来说,近乎于是透明的。
-**单机** 下的 `Redis` 可以支持 `16` 个数据库(`db0 ~ db15`),**集群模式** 下只能使用 **一个** 数据库空间,即 `db0`。
+所以,**Redis Cluster 非常适合构建中小规模 Redis 集群**,这里的中小规模指的是,大概几个到几十个节点这样规模的 Redis 集群。
-- **复制结构** 只支持一层
+但是 Redis Cluster 不太适合构建超大规模集群,主要原因是,它采用了去中心化的设计。
-**从节点** 只能复制 **主节点**,不支持 **嵌套树状复制** 结构。
+Redis 的每个节点上,都保存了所有槽和节点的映射关系表,客户端可以访问任意一个节点,再通过重定向命令,找到数据所在的那个节点。那么,这个映射关系表是如何更新的呢?Redis Cluster 采用了一种去中心化的流言 (Gossip) 协议来传播集群配置的变化。
-### 集群配置
+Gossip 协议的优点是去中心化;缺点是传播速度慢,并且是集群规模越大,传播的越慢。
+
+### 4.3. 集群配置
我们后面会部署一个 Redis 集群作为例子,在那之前,先介绍一下集群在 redis.conf 中的参数。
@@ -178,85 +187,74 @@ Redis 集群节点发送的消息主要有以下五种:
- **cluster-node-timeout** `` - 这是集群中的节点能够失联的最大时间,超过这个时间,该节点就会被认为故障。如果主节点超过这个时间还是不可达,则用它的从节点将启动故障迁移,升级成主节点。注意,任何一个节点在这个时间之内如果还是没有连上大部分的主节点,则此节点将停止接收任何请求。
- **cluster-slave-validity-factor** `` - 如果设置成0,则无论从节点与主节点失联多久,从节点都会尝试升级成主节点。如果设置成正数,则 cluster-node-timeout 乘以 cluster-slave-validity-factor 得到的时间,是从节点与主节点失联后,此从节点数据有效的最长时间,超过这个时间,从节点不会启动故障迁移。假设 cluster-node-timeout=5,cluster-slave-validity-factor=10,则如果从节点跟主节点失联超过 50 秒,此从节点不能成为主节点。注意,如果此参数配置为非 0,将可能出现由于某主节点失联却没有从节点能顶上的情况,从而导致集群不能正常工作,在这种情况下,只有等到原来的主节点重新回归到集群,集群才恢复运作。
- **cluster-migration-barrier** `` - 主节点需要的最小从节点数,只有达到这个数,主节点失败时,它从节点才会进行迁移。更详细介绍可以看本教程后面关于副本迁移到部分。
-- **cluster-require-full-coverage** - 在部分 key 所在的节点不可用时,如果此参数设置为”yes”(默认值), 则整个集群停止接受操作;如果此参数设置为”no”,则集群依然为可达节点上的 key 提供读操作。
+- **cluster-require-full-coverage** `` - 在部分 key 所在的节点不可用时,如果此参数设置为”yes”(默认值), 则整个集群停止接受操作;如果此参数设置为”no”,则集群依然为可达节点上的 key 提供读操作。
-## 五、其他方案
+## 5. 其他 Redis 集群方案
-### 客户端分区方案
+Redis Cluster 不太适合用于大规模集群,所以,如果要构建超大 Redis 集群,需要选择替代方案。一般有三种方案类型:
-**客户端** 就已经决定数据会被 **存储** 到哪个 `redis` 节点或者从哪个 `redis` 节点 **读取数据**。其主要思想是采用 **哈希算法** 将 `Redis` 数据的 `key` 进行散列,通过 `hash` 函数,特定的 `key`会 **映射** 到特定的 `Redis` 节点上。
+- 客户端分区方案
+- 代理分区方案
+- 查询路由方案
-![img](https://user-gold-cdn.xitu.io/2018/9/4/165a4f9e74a09b36?imageView2/0/w/1280/h/960/format/webp/ignore-error/1)
+### 5.1. 客户端分区方案
-**客户端分区方案** 的代表为 `Redis Sharding`,`Redis Sharding` 是 `Redis Cluster` 出来之前,业界普遍使用的 `Redis` **多实例集群** 方法。`Java` 的 `Redis` 客户端驱动库 `Jedis`,支持 `Redis Sharding` 功能,即 `ShardedJedis` 以及 **结合缓存池** 的 `ShardedJedisPool`。
+**客户端** 就已经决定数据会被 **存储** 到哪个 Redis 节点或者从哪个 Redis 节点 **读取数据**。其主要思想是采用 **哈希算法** 将 Redis 数据的 `key` 进行散列,通过 `hash` 函数,特定的 `key`会 **映射** 到特定的 Redis 节点上。
-- **优点**
+**客户端分区方案** 的代表为 Redis Sharding,Redis Sharding 是 Redis Cluster 出来之前,业界普遍使用的 Redis **多实例集群** 方法。Java 的 Redis 客户端驱动库 [**Jedis**](https://github.com/redis/jedis),支持 Redis Sharding 功能,即 ShardedJedis 以及 **结合缓存池** 的 ShardedJedisPool。
-不使用 **第三方中间件**,**分区逻辑** 可控,**配置** 简单,节点之间无关联,容易 **线性扩展**,灵活性强。
+- **优点**:不使用 **第三方中间件**,**分区逻辑** 可控,**配置** 简单,节点之间无关联,容易 **线性扩展**,灵活性强。
-- **缺点**
+- **缺点**:**客户端** 无法 **动态增删** 服务节点,客户端需要自行维护 **分发逻辑**,客户端之间 **无连接共享**,会造成 **连接浪费**。
-**客户端** 无法 **动态增删** 服务节点,客户端需要自行维护 **分发逻辑**,客户端之间 **无连接共享**,会造成 **连接浪费**。
-
-### 代理分区方案
+### 5.2. 代理分区方案
**客户端** 发送请求到一个 **代理组件**,**代理** 解析 **客户端** 的数据,并将请求转发至正确的节点,最后将结果回复给客户端。
- **优点**:简化 **客户端** 的分布式逻辑,**客户端** 透明接入,切换成本低,代理的 **转发** 和 **存储** 分离。
- **缺点**:多了一层 **代理层**,加重了 **架构部署复杂度** 和 **性能损耗**。
-![img](https://user-gold-cdn.xitu.io/2018/9/4/165a4f9e6f8b3a44?imageView2/0/w/1280/h/960/format/webp/ignore-error/1)
+**代理分区** 主流实现的有方案有 **[Twemproxy](https://github.com/twitter/twemproxy)** 和 [**Codis**](https://github.com/CodisLabs/codis)。
-**代理分区** 主流实现的有方案有 `Twemproxy` 和 `Codis`。
+#### 5.2.1. Twemproxy
-#### Twemproxy
+**[Twemproxy](https://github.com/twitter/twemproxy)** 也叫 `nutcraker`,是 Twitter 开源的一个 Redis 和 Memcache 的 **中间代理服务器** 程序。
-`Twemproxy` 也叫 `nutcraker`,是 `twitter` 开源的一个 `redis` 和 `memcache` 的 **中间代理服务器** 程序。`Twemproxy` 作为 **代理**,可接受来自多个程序的访问,按照 **路由规则**,转发给后台的各个 `Redis` 服务器,再原路返回。`Twemproxy` 存在 **单点故障** 问题,需要结合 `Lvs` 和 `Keepalived` 做 **高可用方案**。
-
-![img](https://user-gold-cdn.xitu.io/2018/9/4/165a4f9e751d0773?imageView2/0/w/1280/h/960/format/webp/ignore-error/1)
+**[Twemproxy](https://github.com/twitter/twemproxy)** 作为 **代理**,可接受来自多个程序的访问,按照 **路由规则**,转发给后台的各个 Redis 服务器,再原路返回。**[Twemproxy](https://github.com/twitter/twemproxy)** 存在 **单点故障** 问题,需要结合 Lvs 和 Keepalived 做 **高可用方案**。
- **优点**:应用范围广,稳定性较高,中间代理层 **高可用**。
- **缺点**:无法平滑地 **水平扩容/缩容**,无 **可视化管理界面**,运维不友好,出现故障,不能 **自动转移**。
-#### Codis
+#### 5.2.2. Codis
-`Codis` 是一个 **分布式** `Redis` 解决方案,对于上层应用来说,连接 `Codis-Proxy` 和直接连接 **原生的** `Redis-Server` 没有的区别。`Codis` 底层会 **处理请求的转发**,不停机的进行 **数据迁移** 等工作。`Codis` 采用了无状态的 **代理层**,对于 **客户端** 来说,一切都是透明的。
+[**Codis**](https://github.com/CodisLabs/codis) 是一个 **分布式** Redis 解决方案,对于上层应用来说,连接 Codis-Proxy 和直接连接 **原生的** Redis-Server 没有的区别。[**Codis**](https://github.com/CodisLabs/codis) 底层会 **处理请求的转发**,不停机的进行 **数据迁移** 等工作。[**Codis**](https://github.com/CodisLabs/codis) 采用了无状态的 **代理层**,对于 **客户端** 来说,一切都是透明的。
-![img](https://user-gold-cdn.xitu.io/2018/9/4/165a4f9e7509b300?imageView2/0/w/1280/h/960/format/webp/ignore-error/1)
+- **优点**:实现了上层 Proxy 和底层 Redis 的 **高可用**,**数据分区** 和 **自动平衡**,提供 **命令行接口** 和 RESTful API,提供 **监控** 和 **管理** 界面,可以动态 **添加** 和 **删除** Redis 节点。
-- **优点**
+- **缺点**:**部署架构** 和 **配置** 复杂,不支持 **跨机房** 和 **多租户**,不支持 **鉴权管理**。
-实现了上层 `Proxy` 和底层 `Redis` 的 **高可用**,**数据分片** 和 **自动平衡**,提供 **命令行接口** 和 `RESTful API`,提供 **监控** 和 **管理** 界面,可以动态 **添加** 和 **删除** `Redis` 节点。
+### 5.3. 查询路由方案
-- **缺点**
+**客户端随机地** 请求任意一个 Redis 实例,然后由 Redis 将请求 **转发** 给 **正确** 的 Redis 节点。Redis Cluster 实现了一种 **混合形式** 的 **查询路由**,但并不是 **直接** 将请求从一个 Redis 节点 **转发** 到另一个 Redis 节点,而是在 **客户端** 的帮助下直接 **重定向**( `redirected`)到正确的 Redis 节点。
-**部署架构** 和 **配置** 复杂,不支持 **跨机房** 和 **多租户**,不支持 **鉴权管理**。
+- **优点**:**去中心化**,数据按照 **槽** 存储分布在多个 Redis 实例上,可以平滑的进行节点 **扩容/缩容**,支持 **高可用** 和 **自动故障转移**,运维成本低。
-### 查询路由方案
+- **缺点**:重度依赖 Redis-trib 工具,缺乏 **监控管理**,需要依赖 Smart Client (**维护连接**,**缓存路由表**,`MultiOp` 和 `Pipeline` 支持)。Failover 节点的 **检测过慢**,不如有 **中心节点** 的集群及时(如 ZooKeeper)。Gossip 消息采用广播方式,集群规模越大,开销越大。无法根据统计区分 **冷热数据**。
-**客户端随机地** 请求任意一个 `Redis` 实例,然后由 `Redis` 将请求 **转发** 给 **正确** 的 `Redis` 节点。`Redis Cluster` 实现了一种 **混合形式** 的 **查询路由**,但并不是 **直接** 将请求从一个 `Redis` 节点 **转发** 到另一个 `Redis` 节点,而是在 **客户端** 的帮助下直接 **重定向**( `redirected`)到正确的 `Redis` 节点。
-
-![img](https://user-gold-cdn.xitu.io/2018/9/4/165a4f9e84b4b379?imageView2/0/w/1280/h/960/format/webp/ignore-error/1)
-
-- **优点**
-
-**无中心节点**,数据按照 **槽** 存储分布在多个 `Redis` 实例上,可以平滑的进行节点 **扩容/缩容**,支持 **高可用** 和 **自动故障转移**,运维成本低。
-
-- **缺点**
-
-严重依赖 `Redis-trib` 工具,缺乏 **监控管理**,需要依赖 `Smart Client` (**维护连接**,**缓存路由表**,`MultiOp` 和 `Pipeline` 支持)。`Failover` 节点的 **检测过慢**,不如 **中心节点** `ZooKeeper` 及时。`Gossip` 消息具有一定开销。无法根据统计区分 **冷热数据**。
-
-## 参考资料
+## 6. 参考资料
- **官网**
- [Redis 官网](https://redis.io/)
- [Redis github](https://github.com/antirez/redis)
- [Redis 官方文档中文版](http://redis.cn/)
+- **中间件**
+ - [Twemproxy](https://github.com/twitter/twemproxy)
+ - [Codis](https://github.com/CodisLabs/codis)
- **书籍**
- [《Redis 实战》](https://item.jd.com/11791607.html)
- [《Redis 设计与实现》](https://item.jd.com/11486101.html)
- **教程**
- - [Redis 命令参考](http://redisdoc.com/)
+ - [后端存储实战课](https://time.geekbang.org/column/intro/100046801)
- **文章**
- [Redis 集群教程](http://ifeve.com/redis-cluster-tutorial/)
- [Redis 集群的原理和搭建](https://www.jianshu.com/p/c869feb5581d)
diff --git a/docs/05.KV数据库/01.Redis/08.Redis实战.md b/docs/05.KV数据库/01.Redis/08.Redis实战.md
index f40a2f2..e01c457 100644
--- a/docs/05.KV数据库/01.Redis/08.Redis实战.md
+++ b/docs/05.KV数据库/01.Redis/08.Redis实战.md
@@ -1,9 +1,15 @@
---
title: Redis 实战
date: 2020-06-24 10:45:38
-categories: ['数据库', 'KV数据库', 'Redis']
-tags: ['数据库', 'KV数据库', 'Redis']
-permalink: /pages/31fcbd/
+categories:
+ - 数据库
+ - KV数据库
+ - Redis
+tags:
+ - 数据库
+ - KV数据库
+ - Redis
+permalink: /pages/199c5a/
---
# Redis 实战
diff --git a/docs/05.KV数据库/01.Redis/20.Redis运维.md b/docs/05.KV数据库/01.Redis/20.Redis运维.md
index 825045e..2a749f4 100644
--- a/docs/05.KV数据库/01.Redis/20.Redis运维.md
+++ b/docs/05.KV数据库/01.Redis/20.Redis运维.md
@@ -1,9 +1,16 @@
---
title: Redis 运维
date: 2020-06-24 10:45:38
-categories: ['数据库', 'KV数据库', 'Redis']
-tags: ['数据库', 'KV数据库', 'Redis', '运维']
-permalink: /pages/89a414/
+categories:
+ - 数据库
+ - KV数据库
+ - Redis
+tags:
+ - 数据库
+ - KV数据库
+ - Redis
+ - 运维
+permalink: /pages/8f1824/
---
# Redis 运维
diff --git a/docs/05.KV数据库/01.Redis/README.md b/docs/05.KV数据库/01.Redis/README.md
index 7781409..c4d307f 100644
--- a/docs/05.KV数据库/01.Redis/README.md
+++ b/docs/05.KV数据库/01.Redis/README.md
@@ -1,9 +1,15 @@
---
title: Redis 教程
date: 2020-02-10 14:27:39
-categories: ['数据库', 'KV数据库', 'Redis']
-tags: ['数据库', 'KV数据库', 'Redis']
-permalink: /pages/9fdea9/
+categories:
+ - 数据库
+ - KV数据库
+ - Redis
+tags:
+ - 数据库
+ - KV数据库
+ - Redis
+permalink: /pages/b2487a/
---
# Redis 教程
diff --git a/docs/06.列式数据库/01.Hbase.md b/docs/06.列式数据库/01.Hbase.md
index 3123745..e4ee4cf 100644
--- a/docs/06.列式数据库/01.Hbase.md
+++ b/docs/06.列式数据库/01.Hbase.md
@@ -1,9 +1,14 @@
---
title: Hbase
date: 2020-02-10 14:27:39
-categories: ['数据库', '列式数据库']
-tags: ['数据库', '列式数据库', 'Hbase']
-permalink: /pages/e848d6/
+categories:
+ - 数据库
+ - 列式数据库
+tags:
+ - 数据库
+ - 列式数据库
+ - Hbase
+permalink: /pages/b570af/
---
# HBase
diff --git a/docs/06.列式数据库/02.Cassandra.md b/docs/06.列式数据库/02.Cassandra.md
index 2a21d92..24af0af 100644
--- a/docs/06.列式数据库/02.Cassandra.md
+++ b/docs/06.列式数据库/02.Cassandra.md
@@ -1,9 +1,14 @@
---
title: Cassandra
date: 2019-08-22 09:02:39
-categories: ['数据库', '列式数据库']
-tags: ['数据库', '列式数据库', 'Cassandra']
-permalink: /pages/18031b/
+categories:
+ - 数据库
+ - 列式数据库
+tags:
+ - 数据库
+ - 列式数据库
+ - Cassandra
+permalink: /pages/4c58c2/
---
# Cassandra
diff --git a/docs/07.搜索引擎数据库/01.Elasticsearch/01.Elasticsearch面试总结.md b/docs/07.搜索引擎数据库/01.Elasticsearch/01.Elasticsearch面试总结.md
index 805f171..dce2946 100644
--- a/docs/07.搜索引擎数据库/01.Elasticsearch/01.Elasticsearch面试总结.md
+++ b/docs/07.搜索引擎数据库/01.Elasticsearch/01.Elasticsearch面试总结.md
@@ -1,9 +1,16 @@
---
title: Elasticsearch 面试总结
date: 2020-06-16 07:10:44
-categories: ['数据库', '搜索引擎数据库', 'Elasticsearch']
-tags: ['数据库', '搜索引擎数据库', 'Elasticsearch', '面试']
-permalink: /pages/aa9e4a/
+categories:
+ - 数据库
+ - 搜索引擎数据库
+ - Elasticsearch
+tags:
+ - 数据库
+ - 搜索引擎数据库
+ - Elasticsearch
+ - 面试
+permalink: /pages/1f9edc/
---
# Elasticsearch 面试总结
diff --git a/docs/07.搜索引擎数据库/01.Elasticsearch/02.Elasticsearch快速入门.md b/docs/07.搜索引擎数据库/01.Elasticsearch/02.Elasticsearch快速入门.md
index 81b9f34..078a995 100644
--- a/docs/07.搜索引擎数据库/01.Elasticsearch/02.Elasticsearch快速入门.md
+++ b/docs/07.搜索引擎数据库/01.Elasticsearch/02.Elasticsearch快速入门.md
@@ -1,9 +1,15 @@
---
title: Elasticsearch 快速入门
date: 2020-06-16 07:10:44
-categories: ['数据库', '搜索引擎数据库', 'Elasticsearch']
-tags: ['数据库', '搜索引擎数据库', 'Elasticsearch']
-permalink: /pages/868e6c/
+categories:
+ - 数据库
+ - 搜索引擎数据库
+ - Elasticsearch
+tags:
+ - 数据库
+ - 搜索引擎数据库
+ - Elasticsearch
+permalink: /pages/37b739/
---
# Elasticsearch 快速入门
diff --git a/docs/07.搜索引擎数据库/01.Elasticsearch/03.Elasticsearch简介.md b/docs/07.搜索引擎数据库/01.Elasticsearch/03.Elasticsearch简介.md
index a6d00dc..4a39f2a 100644
--- a/docs/07.搜索引擎数据库/01.Elasticsearch/03.Elasticsearch简介.md
+++ b/docs/07.搜索引擎数据库/01.Elasticsearch/03.Elasticsearch简介.md
@@ -1,9 +1,15 @@
---
title: Elasticsearch 简介
date: 2022-02-22 21:01:01
-categories: ['数据库', '搜索引擎数据库', 'Elasticsearch']
-tags: ['数据库', '搜索引擎数据库', 'Elasticsearch']
-permalink: /pages/ac661a/
+categories:
+ - 数据库
+ - 搜索引擎数据库
+ - Elasticsearch
+tags:
+ - 数据库
+ - 搜索引擎数据库
+ - Elasticsearch
+permalink: /pages/6f7391/
---
# Elasticsearch 简介
diff --git a/docs/07.搜索引擎数据库/01.Elasticsearch/04.Elasticsearch索引.md b/docs/07.搜索引擎数据库/01.Elasticsearch/04.Elasticsearch索引.md
index 57bd3f2..a3a07c2 100644
--- a/docs/07.搜索引擎数据库/01.Elasticsearch/04.Elasticsearch索引.md
+++ b/docs/07.搜索引擎数据库/01.Elasticsearch/04.Elasticsearch索引.md
@@ -1,9 +1,16 @@
---
title: Elasticsearch 索引
date: 2022-02-22 21:01:01
-categories: ['数据库', '搜索引擎数据库', 'Elasticsearch']
-tags: ['数据库', '搜索引擎数据库', 'Elasticsearch', '索引']
-permalink: /pages/db5f76/
+categories:
+ - 数据库
+ - 搜索引擎数据库
+ - Elasticsearch
+tags:
+ - 数据库
+ - 搜索引擎数据库
+ - Elasticsearch
+ - 索引
+permalink: /pages/5291b4/
---
# Elasticsearch 索引
diff --git a/docs/07.搜索引擎数据库/01.Elasticsearch/05.Elasticsearch查询.md b/docs/07.搜索引擎数据库/01.Elasticsearch/05.Elasticsearch查询.md
index 5011881..8336b56 100644
--- a/docs/07.搜索引擎数据库/01.Elasticsearch/05.Elasticsearch查询.md
+++ b/docs/07.搜索引擎数据库/01.Elasticsearch/05.Elasticsearch查询.md
@@ -1,9 +1,16 @@
---
title: Elasticsearch 查询
date: 2022-01-18 08:01:08
-categories: ['数据库', '搜索引擎数据库', 'Elasticsearch']
-tags: ['数据库', '搜索引擎数据库', 'Elasticsearch', '查询']
-permalink: /pages/a88250/
+categories:
+ - 数据库
+ - 搜索引擎数据库
+ - Elasticsearch
+tags:
+ - 数据库
+ - 搜索引擎数据库
+ - Elasticsearch
+ - 查询
+permalink: /pages/478bb5/
---
# Elasticsearch 查询
diff --git a/docs/07.搜索引擎数据库/01.Elasticsearch/06.Elasticsearch高亮.md b/docs/07.搜索引擎数据库/01.Elasticsearch/06.Elasticsearch高亮.md
index b42eb6b..dc2ff98 100644
--- a/docs/07.搜索引擎数据库/01.Elasticsearch/06.Elasticsearch高亮.md
+++ b/docs/07.搜索引擎数据库/01.Elasticsearch/06.Elasticsearch高亮.md
@@ -1,9 +1,16 @@
---
title: Elasticsearch 高亮搜索及显示
date: 2022-02-22 21:01:01
-categories: ['数据库', '搜索引擎数据库', 'Elasticsearch']
-tags: ['数据库', '搜索引擎数据库', 'Elasticsearch', '高亮']
-permalink: /pages/588753/
+categories:
+ - 数据库
+ - 搜索引擎数据库
+ - Elasticsearch
+tags:
+ - 数据库
+ - 搜索引擎数据库
+ - Elasticsearch
+ - 高亮
+permalink: /pages/4ae35a/
---
# Elasticsearch 高亮搜索及显示
diff --git a/docs/07.搜索引擎数据库/01.Elasticsearch/07.Elasticsearch排序.md b/docs/07.搜索引擎数据库/01.Elasticsearch/07.Elasticsearch排序.md
index aad1c85..2e57e31 100644
--- a/docs/07.搜索引擎数据库/01.Elasticsearch/07.Elasticsearch排序.md
+++ b/docs/07.搜索引擎数据库/01.Elasticsearch/07.Elasticsearch排序.md
@@ -1,9 +1,16 @@
---
title: Elasticsearch 排序
date: 2022-01-19 22:49:16
-categories: ['数据库', '搜索引擎数据库', 'Elasticsearch']
-tags: ['数据库', '搜索引擎数据库', 'Elasticsearch', '排序']
-permalink: /pages/91b465/
+categories:
+ - 数据库
+ - 搜索引擎数据库
+ - Elasticsearch
+tags:
+ - 数据库
+ - 搜索引擎数据库
+ - Elasticsearch
+ - 排序
+permalink: /pages/44ca8e/
---
# Elasticsearch 排序
diff --git a/docs/07.搜索引擎数据库/01.Elasticsearch/08.Elasticsearch聚合.md b/docs/07.搜索引擎数据库/01.Elasticsearch/08.Elasticsearch聚合.md
index bef558b..7c77574 100644
--- a/docs/07.搜索引擎数据库/01.Elasticsearch/08.Elasticsearch聚合.md
+++ b/docs/07.搜索引擎数据库/01.Elasticsearch/08.Elasticsearch聚合.md
@@ -1,9 +1,16 @@
---
title: Elasticsearch 聚合
date: 2022-01-19 22:49:16
-categories: ['数据库', '搜索引擎数据库', 'Elasticsearch']
-tags: ['数据库', '搜索引擎数据库', 'Elasticsearch', '聚合']
-permalink: /pages/601224/
+categories:
+ - 数据库
+ - 搜索引擎数据库
+ - Elasticsearch
+tags:
+ - 数据库
+ - 搜索引擎数据库
+ - Elasticsearch
+ - 聚合
+permalink: /pages/93fa2a/
---
# Elasticsearch 聚合
diff --git a/docs/07.搜索引擎数据库/01.Elasticsearch/09.Elasticsearch分析器.md b/docs/07.搜索引擎数据库/01.Elasticsearch/09.Elasticsearch分析器.md
index 0c9c24b..d4f2a45 100644
--- a/docs/07.搜索引擎数据库/01.Elasticsearch/09.Elasticsearch分析器.md
+++ b/docs/07.搜索引擎数据库/01.Elasticsearch/09.Elasticsearch分析器.md
@@ -1,9 +1,16 @@
---
title: Elasticsearch 分析器
date: 2022-02-22 21:01:01
-categories: ['数据库', '搜索引擎数据库', 'Elasticsearch']
-tags: ['数据库', '搜索引擎数据库', 'Elasticsearch', '分析器']
-permalink: /pages/baef46/
+categories:
+ - 数据库
+ - 搜索引擎数据库
+ - Elasticsearch
+tags:
+ - 数据库
+ - 搜索引擎数据库
+ - Elasticsearch
+ - 分析器
+permalink: /pages/c04143/
---
# Elasticsearch 分析器
diff --git a/docs/07.搜索引擎数据库/01.Elasticsearch/10.Elasticsearch性能优化.md b/docs/07.搜索引擎数据库/01.Elasticsearch/10.Elasticsearch性能优化.md
index 9f16913..fd4a264 100644
--- a/docs/07.搜索引擎数据库/01.Elasticsearch/10.Elasticsearch性能优化.md
+++ b/docs/07.搜索引擎数据库/01.Elasticsearch/10.Elasticsearch性能优化.md
@@ -1,9 +1,16 @@
---
title: Elasticsearch 性能优化
date: 2022-01-21 19:54:43
-categories: ['数据库', '搜索引擎数据库', 'Elasticsearch']
-tags: ['数据库', '搜索引擎数据库', 'Elasticsearch', '性能']
-permalink: /pages/cf8acd/
+categories:
+ - 数据库
+ - 搜索引擎数据库
+ - Elasticsearch
+tags:
+ - 数据库
+ - 搜索引擎数据库
+ - Elasticsearch
+ - 性能
+permalink: /pages/dc6b0f/
---
# Elasticsearch 性能优化
diff --git a/docs/07.搜索引擎数据库/01.Elasticsearch/11.ElasticsearchRestApi.md b/docs/07.搜索引擎数据库/01.Elasticsearch/11.ElasticsearchRestApi.md
index 6bfd1d7..3e29ca7 100644
--- a/docs/07.搜索引擎数据库/01.Elasticsearch/11.ElasticsearchRestApi.md
+++ b/docs/07.搜索引擎数据库/01.Elasticsearch/11.ElasticsearchRestApi.md
@@ -1,9 +1,16 @@
---
title: Elasticsearch Rest API
date: 2020-06-16 07:10:44
-categories: ['数据库', '搜索引擎数据库', 'Elasticsearch']
-tags: ['数据库', '搜索引擎数据库', 'Elasticsearch', 'API']
-permalink: /pages/18103a/
+categories:
+ - 数据库
+ - 搜索引擎数据库
+ - Elasticsearch
+tags:
+ - 数据库
+ - 搜索引擎数据库
+ - Elasticsearch
+ - API
+permalink: /pages/1edd27/
---
# ElasticSearch Rest API
diff --git a/docs/07.搜索引擎数据库/01.Elasticsearch/12.ElasticsearchHighLevelRestJavaApi.md b/docs/07.搜索引擎数据库/01.Elasticsearch/12.ElasticsearchHighLevelRestJavaApi.md
index 13a0ab6..604fc9a 100644
--- a/docs/07.搜索引擎数据库/01.Elasticsearch/12.ElasticsearchHighLevelRestJavaApi.md
+++ b/docs/07.搜索引擎数据库/01.Elasticsearch/12.ElasticsearchHighLevelRestJavaApi.md
@@ -1,9 +1,16 @@
---
title: ElasticSearch Java API 之 High Level REST Client
date: 2022-03-01 18:55:46
-categories: ['数据库', '搜索引擎数据库', 'Elasticsearch']
-tags: ['数据库', '搜索引擎数据库', 'Elasticsearch', 'API']
-permalink: /pages/90e1b8/
+categories:
+ - 数据库
+ - 搜索引擎数据库
+ - Elasticsearch
+tags:
+ - 数据库
+ - 搜索引擎数据库
+ - Elasticsearch
+ - API
+permalink: /pages/baf137/
---
# ElasticSearch Java API 之 High Level REST Client
diff --git a/docs/07.搜索引擎数据库/01.Elasticsearch/13.Elasticsearch集群和分片.md b/docs/07.搜索引擎数据库/01.Elasticsearch/13.Elasticsearch集群和分片.md
index d57d27e..ee5e7f3 100644
--- a/docs/07.搜索引擎数据库/01.Elasticsearch/13.Elasticsearch集群和分片.md
+++ b/docs/07.搜索引擎数据库/01.Elasticsearch/13.Elasticsearch集群和分片.md
@@ -1,9 +1,17 @@
---
title: Elasticsearch 集群和分片
date: 2022-03-01 20:52:25
-categories: ['数据库', '搜索引擎数据库', 'Elasticsearch']
-tags: ['数据库', '搜索引擎数据库', 'Elasticsearch', '集群', '分片']
-permalink: /pages/58cab4/
+categories:
+ - 数据库
+ - 搜索引擎数据库
+ - Elasticsearch
+tags:
+ - 数据库
+ - 搜索引擎数据库
+ - Elasticsearch
+ - 集群
+ - 分片
+permalink: /pages/d894ac/
---
# Elasticsearch 集群和分片
diff --git a/docs/07.搜索引擎数据库/01.Elasticsearch/20.Elasticsearch运维.md b/docs/07.搜索引擎数据库/01.Elasticsearch/20.Elasticsearch运维.md
index c056545..ca8bcab 100644
--- a/docs/07.搜索引擎数据库/01.Elasticsearch/20.Elasticsearch运维.md
+++ b/docs/07.搜索引擎数据库/01.Elasticsearch/20.Elasticsearch运维.md
@@ -1,9 +1,16 @@
---
title: Elasticsearch 运维
date: 2020-06-16 07:10:44
-categories: ['数据库', '搜索引擎数据库', 'Elasticsearch']
-tags: ['数据库', '搜索引擎数据库', 'Elasticsearch', '运维']
-permalink: /pages/bd9759/
+categories:
+ - 数据库
+ - 搜索引擎数据库
+ - Elasticsearch
+tags:
+ - 数据库
+ - 搜索引擎数据库
+ - Elasticsearch
+ - 运维
+permalink: /pages/805d11/
---
# Elasticsearch 运维
diff --git a/docs/07.搜索引擎数据库/01.Elasticsearch/README.md b/docs/07.搜索引擎数据库/01.Elasticsearch/README.md
index e35b670..f1e75f1 100644
--- a/docs/07.搜索引擎数据库/01.Elasticsearch/README.md
+++ b/docs/07.搜索引擎数据库/01.Elasticsearch/README.md
@@ -1,9 +1,15 @@
---
title: Elasticsearch 教程
date: 2022-04-11 16:52:35
-categories: ['数据库', '搜索引擎数据库', 'Elasticsearch']
-tags: ['数据库', '搜索引擎数据库', 'Elasticsearch']
-permalink: /pages/d0a98e/
+categories:
+ - 数据库
+ - 搜索引擎数据库
+ - Elasticsearch
+tags:
+ - 数据库
+ - 搜索引擎数据库
+ - Elasticsearch
+permalink: /pages/7324df/
---
# Elasticsearch 教程
diff --git a/docs/07.搜索引擎数据库/02.Elastic/01.Elastic快速入门.md b/docs/07.搜索引擎数据库/02.Elastic/01.Elastic快速入门.md
index a0a52b7..670b3c9 100644
--- a/docs/07.搜索引擎数据库/02.Elastic/01.Elastic快速入门.md
+++ b/docs/07.搜索引擎数据库/02.Elastic/01.Elastic快速入门.md
@@ -1,9 +1,15 @@
---
title: Elastic 快速入门
date: 2020-06-16 07:10:44
-categories: ['数据库', '搜索引擎数据库', 'Elastic']
-tags: ['数据库', '搜索引擎数据库', 'Elastic']
-permalink: /pages/e83871/
+categories:
+ - 数据库
+ - 搜索引擎数据库
+ - Elastic
+tags:
+ - 数据库
+ - 搜索引擎数据库
+ - Elastic
+permalink: /pages/d5bdd0/
---
# Elastic 快速入门
diff --git a/docs/07.搜索引擎数据库/02.Elastic/02.Elastic技术栈之Filebeat.md b/docs/07.搜索引擎数据库/02.Elastic/02.Elastic技术栈之Filebeat.md
index 6ed378c..562f218 100644
--- a/docs/07.搜索引擎数据库/02.Elastic/02.Elastic技术栈之Filebeat.md
+++ b/docs/07.搜索引擎数据库/02.Elastic/02.Elastic技术栈之Filebeat.md
@@ -1,9 +1,16 @@
---
title: Elastic 技术栈之 Filebeat
date: 2020-06-16 07:10:44
-categories: ['数据库', '搜索引擎数据库', 'Elastic']
-tags: ['数据库', '搜索引擎数据库', 'Elastic', 'Filebeat']
-permalink: /pages/6aed4b/
+categories:
+ - 数据库
+ - 搜索引擎数据库
+ - Elastic
+tags:
+ - 数据库
+ - 搜索引擎数据库
+ - Elastic
+ - Filebeat
+permalink: /pages/3efdd8/
---
# Elastic 技术栈之 Filebeat
diff --git a/docs/07.搜索引擎数据库/02.Elastic/03.Filebeat运维.md b/docs/07.搜索引擎数据库/02.Elastic/03.Filebeat运维.md
index 2eb6143..7da882e 100644
--- a/docs/07.搜索引擎数据库/02.Elastic/03.Filebeat运维.md
+++ b/docs/07.搜索引擎数据库/02.Elastic/03.Filebeat运维.md
@@ -1,9 +1,16 @@
---
title: Filebeat 运维
date: 2020-06-16 07:10:44
-categories: ['数据库', '搜索引擎数据库', 'Elastic']
-tags: ['数据库', '搜索引擎数据库', 'Elastic', 'Filebeat']
-permalink: /pages/6b4129/
+categories:
+ - 数据库
+ - 搜索引擎数据库
+ - Elastic
+tags:
+ - 数据库
+ - 搜索引擎数据库
+ - Elastic
+ - Filebeat
+permalink: /pages/43db0b/
---
# Filebeat 运维
diff --git a/docs/07.搜索引擎数据库/02.Elastic/04.Elastic技术栈之Kibana.md b/docs/07.搜索引擎数据库/02.Elastic/04.Elastic技术栈之Kibana.md
index 5d0573f..e76b6d6 100644
--- a/docs/07.搜索引擎数据库/02.Elastic/04.Elastic技术栈之Kibana.md
+++ b/docs/07.搜索引擎数据库/02.Elastic/04.Elastic技术栈之Kibana.md
@@ -1,9 +1,16 @@
---
title: Elastic 技术栈之 Kibana
date: 2020-06-16 07:10:44
-categories: ['数据库', '搜索引擎数据库', 'Elastic']
-tags: ['数据库', '搜索引擎数据库', 'Elastic', 'Kibana']
-permalink: /pages/3ba500/
+categories:
+ - 数据库
+ - 搜索引擎数据库
+ - Elastic
+tags:
+ - 数据库
+ - 搜索引擎数据库
+ - Elastic
+ - Kibana
+permalink: /pages/507fcc/
---
# Elastic 技术栈之 Kibana
diff --git a/docs/07.搜索引擎数据库/02.Elastic/05.Kibana运维.md b/docs/07.搜索引擎数据库/02.Elastic/05.Kibana运维.md
index e35690e..38d585a 100644
--- a/docs/07.搜索引擎数据库/02.Elastic/05.Kibana运维.md
+++ b/docs/07.搜索引擎数据库/02.Elastic/05.Kibana运维.md
@@ -1,9 +1,16 @@
---
title: Kibana 运维
date: 2020-06-16 07:10:44
-categories: ['数据库', '搜索引擎数据库', 'Elastic']
-tags: ['数据库', '搜索引擎数据库', 'Elastic', 'Kibana']
-permalink: /pages/42be7f/
+categories:
+ - 数据库
+ - 搜索引擎数据库
+ - Elastic
+tags:
+ - 数据库
+ - 搜索引擎数据库
+ - Elastic
+ - Kibana
+permalink: /pages/8d96f6/
---
# Kibana 运维
diff --git a/docs/07.搜索引擎数据库/02.Elastic/06.Elastic技术栈之Logstash.md b/docs/07.搜索引擎数据库/02.Elastic/06.Elastic技术栈之Logstash.md
index bb7ef3d..bc59763 100644
--- a/docs/07.搜索引擎数据库/02.Elastic/06.Elastic技术栈之Logstash.md
+++ b/docs/07.搜索引擎数据库/02.Elastic/06.Elastic技术栈之Logstash.md
@@ -1,9 +1,16 @@
---
title: Elastic 技术栈之 Logstash
date: 2020-06-16 07:10:44
-categories: ['数据库', '搜索引擎数据库', 'Elastic']
-tags: ['数据库', '搜索引擎数据库', 'Elastic', 'Logstash']
-permalink: /pages/f07355/
+categories:
+ - 数据库
+ - 搜索引擎数据库
+ - Elastic
+tags:
+ - 数据库
+ - 搜索引擎数据库
+ - Elastic
+ - Logstash
+permalink: /pages/0da19c/
---
# Elastic 技术栈之 Logstash
diff --git a/docs/07.搜索引擎数据库/02.Elastic/07.Logstash运维.md b/docs/07.搜索引擎数据库/02.Elastic/07.Logstash运维.md
index 46e59c2..1161691 100644
--- a/docs/07.搜索引擎数据库/02.Elastic/07.Logstash运维.md
+++ b/docs/07.搜索引擎数据库/02.Elastic/07.Logstash运维.md
@@ -1,9 +1,16 @@
---
title: Logstash 运维
date: 2020-06-16 07:10:44
-categories: ['数据库', '搜索引擎数据库', 'Elastic']
-tags: ['数据库', '搜索引擎数据库', 'Elastic', 'Logstash']
-permalink: /pages/c5c564/
+categories:
+ - 数据库
+ - 搜索引擎数据库
+ - Elastic
+tags:
+ - 数据库
+ - 搜索引擎数据库
+ - Elastic
+ - Logstash
+permalink: /pages/ec3c6f/
---
# Logstash 运维
diff --git a/docs/07.搜索引擎数据库/02.Elastic/README.md b/docs/07.搜索引擎数据库/02.Elastic/README.md
index c7aaddd..4ec3037 100644
--- a/docs/07.搜索引擎数据库/02.Elastic/README.md
+++ b/docs/07.搜索引擎数据库/02.Elastic/README.md
@@ -1,9 +1,15 @@
---
title: Elastic 技术栈
date: 2022-04-11 16:52:35
-categories: ['数据库', '搜索引擎数据库', 'Elastic']
-tags: ['数据库', '搜索引擎数据库', 'Elastic']
-permalink: /pages/0effac/
+categories:
+ - 数据库
+ - 搜索引擎数据库
+ - Elastic
+tags:
+ - 数据库
+ - 搜索引擎数据库
+ - Elastic
+permalink: /pages/976ee9/
---
# Elastic 技术栈
diff --git a/docs/@pages/archivesPage.md b/docs/@pages/archivesPage.md
index c021f6b..80615d7 100644
--- a/docs/@pages/archivesPage.md
+++ b/docs/@pages/archivesPage.md
@@ -1,6 +1,5 @@
---
archivesPage: true
title: 归档
-permalink: /archives/
article: false
----
\ No newline at end of file
+---
diff --git a/docs/@pages/categoriesPage.md b/docs/@pages/categoriesPage.md
new file mode 100644
index 0000000..b904422
--- /dev/null
+++ b/docs/@pages/categoriesPage.md
@@ -0,0 +1,5 @@
+---
+categoriesPage: true
+title: 分类
+article: false
+---
diff --git a/docs/@pages/tagsPage.md b/docs/@pages/tagsPage.md
index cf1bde5..efc21b8 100644
--- a/docs/@pages/tagsPage.md
+++ b/docs/@pages/tagsPage.md
@@ -1,6 +1,5 @@
---
tagsPage: true
title: 标签
-permalink: /tags/
article: false
----
\ No newline at end of file
+---
diff --git a/docs/README.md b/docs/README.md
index 00181c6..4eda83d 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -22,7 +22,7 @@ footer: CC-BY-SA-4.0 Licensed | Copyright © 2018-Now Dunwu
-
+
diff --git a/package.json b/package.json
index d5c0d8b..219eb9f 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,7 @@
{
"name": "java-tutorial",
"version": "1.0.0",
+ "private": true,
"scripts": {
"clean": "rimraf docs/.temp",
"start": "vuepress dev docs",
@@ -8,12 +9,11 @@
"deploy": "bash scripts/deploy.sh",
"updateTheme": "yarn remove vuepress-theme-vdoing && rm -rf node_modules && yarn && yarn add vuepress-theme-vdoing -D",
"editFm": "node utils/editFrontmatter.js",
- "lint": "markdownlint -r markdownlint-rule-emphasis-style -c ./.markdownlint.json **/*.md -i node_modules",
- "lint:fix": "markdownlint -f -r markdownlint-rule-emphasis-style -c ./.markdownlint.json **/*.md -i node_modules",
+ "lint": "markdownlint -r markdownlint-rule-emphasis-style -c docs/.markdownlint.json **/*.md -i node_modules",
+ "lint:fix": "markdownlint -f -r markdownlint-rule-emphasis-style -c docs/.markdownlint.json **/*.md -i node_modules",
"show-help": "vuepress --help",
"view-info": "vuepress view-info ./ --temp docs/.temp"
},
- "license": "MIT",
"devDependencies": {
"dayjs": "^1.9.7",
"inquirer": "^7.1.0",
@@ -32,6 +32,5 @@
"markdownlint-rule-emphasis-style": "^1.0.1",
"rimraf": "^3.0.1",
"vue-toasted": "^1.1.25"
- },
- "dependencies": {}
+ }
}