Skip to content

Commit 3155b79

Browse files
committed
update deploy.sh doctrine
1 parent 228fd87 commit 3155b79

File tree

8 files changed

+62
-4
lines changed

8 files changed

+62
-4
lines changed

README.md

+4-1
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,7 @@
225225
- [logrotate 日志分割](src/Linux/logrotate.md)
226226
- [find 文件查找](src/Linux/find.md)
227227
- [升级gcc 4.8.5](src/Linux/gcc.md)
228+
- [kill 批量杀掉筛选的进程](src/Linux/kill.md)
228229
9. [Go](src/Go/README.md "golang")
229230
- [path](src/Go/path.md) 环境变量配置
230231
- [gofmt vs go fmt](src/Go/gofmt.md)
@@ -254,11 +255,13 @@
254255
- [basic](src/Redis/basic.md) redis基础
255256
- [redis windows](src/Redis/redis_windows.md)redis在windows上的使用
256257
- [redis install](src/Redis/install.md) Redis源码编译安装
257-
- [master slave](src/Redis/master-slave.md) redis配置主从
258258
- [redis.conf](src/Redis/redis.conf.md) redis配置文件介绍
259259
- [Predis VS phpredis](src/Redis/PredisVSphpredis.md) Predis与phpredis对比
260260
- [persistence](src/Redis/persistence.md)数据持久化
261261
- [commands](src/Redis/commands.md) 常用命令
262+
- [Redis主从 master slave ](src/Redis/master-slave.md)
263+
- [Redis哨兵 sentinel ](src/Redis/sentinel.md)
264+
- [Redis集群 cluster](src/Redis/cluster.md)
262265
11. [git相关](src/git/README.md "git")
263266
- [git branch](src/git/branch.md) git分支相关
264267
- [git tag](src/git/tag.md) git标签相关

src/Linux/README.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,5 @@
2929
- [rpm包使用命令](rpm.md)
3030
- [logrotate 日志分割](logrotate.md)
3131
- [find 文件查找](find.md)
32-
- [升级gcc 4.8.5](gcc.md)
32+
- [升级gcc 4.8.5](gcc.md)
33+
- [kill 批量杀掉筛选的进程](kill.md)

src/Linux/kill.md

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
## kill
2+
- 批量杀掉筛选的进程
3+
4+
ps -ef | grep test | grep -v grep | awk '{print $2}' | xargs kill -9
5+
其中:
6+
- `|` 管道符,用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。
7+
- `ps` 命令用来列出系统中当前运行的进程, `ps -ef` 显示所有进程信息,联通命令行。
8+
- `grep` 命令用于过滤/搜索特定字符,`grep test` 在这里为搜索过滤所有含有‘test’名称的进程
9+
- `grep -v grep` 中的 `-v` 显示不包含匹配文本的所有行,在这里为筛选出所有不包含`grep`名称的进程(即剔除出自身命令),对上一步的进程再做一次筛选(因为`ps -ef`列出了所有的命令,包括命令行)
10+
- `awk` 在文件或字符串中基于指定规则浏览和抽取信息;把文件逐行读入,以空格为默认分隔符将每行切片,然后再进行后序处理。这里利用`awk '{print $2}'`将上一步中过滤得到的进程进行打印,$2表示打印第二个域(PID,进程号) $0表示所有域,$1表示第一个域,$n表示第n个域。
11+
- `xargs` 命令是给命令传递参数的过滤器,善于把标准数据数据转换成命令行参数。在这里则是将获取前一个命令的标准输出然后转换成命令行参数传递给后面的kill命令。
12+
- `kill -9` 强制关闭进程。

src/Redis/README.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@
22
- [basic](basic.md) redis基础
33
- [redis windows](redis_windows.md)redis在windows上的使用
44
- [redis install](install.md) Redis源码编译安装
5-
- [master slave](master-slave.md) redis配置主从
65
- [redis.conf](redis.conf.md) redis配置文件介绍
76
- [Predis VS phpredis](PredisVSphpredis.md) Predis与phpredis对比
87
- [persistence](persistence.md)数据持久化
9-
- [commands](commands.md) 常用命令
8+
- [commands](commands.md) 常用命令
9+
- [Redis主从 master slave ](master-slave.md)
10+
- [Redis哨兵 sentinel ](sentinel.md)
11+
- [Redis集群 cluster](cluster.md)

src/Redis/cluster.md

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
## Redis cluster
2+
- 官方文档
3+
> https://redis.io/topics/cluster-tutorial
4+
- 背景
5+
- 其他方案,一直都是向1台redis写数据,其他的redis只是备份而已。实际场景中,单个redis节点可能不满足要求,因为:
6+
- 单个redis并发有限
7+
- 单个redis接收所有的数据,最终回导致内存太大,内存太大回导致rdb文件过大,从很大的rdb文件中同步恢复数据会很慢。
8+
9+
因此,我们需要redis cluster 即redis集群。
10+
- Redis Cluster介绍
11+
- Redis 集群是一个提供在**多个Redis间节点间共享数据**的程序集。
12+
- Redis集群并不支持处理多个keys的命令,因为这需要在不同的节点间移动数据,从而达不到像Redis那样的性能,在高负载的情况下可能会导致不可预料的错误.
13+
- Redis 集群通过分区来提供**一定程度的可用性**,在实际环境中当某个节点宕机或者不可达的情况下继续处理命令. Redis 集群的优势:
14+
- 自动分割数据到不同的节点上。
15+
- 整个集群的部分节点失败或者不可达的情况下能够继续处理命令。
16+
- 集群部署
17+
- 至少需要6个节点
18+
> Note that the minimal cluster that works as expected requires to contain at least three master nodes.
19+
20+
因为最小的redis集群,需要至少3个主节点,既然有3个主节点,而一个主节点搭配至少一个从节点,因此至少得6台redis。

src/Redis/master-slave.md

+2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
## Redis master-slave
2+
- 背景
3+
- 假设我们生产环境使用了一台redis,redis挂了怎么办?如果等到运维重启redis,并恢复好数据,可能需要花费很长时间。那么在这期间,我们的服务是不可用的,这应该是不能容忍的。假设我们做了主从,主库挂了之后,运维让从库接管,那么服务可以继续运行,正所谓有备无患。
24

35
https://segmentfault.com/a/1190000006619753
46
https://segmentfault.com/a/1190000002692598

src/Redis/sentinel.md

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
## Redis Sentinel
2+
- 官方文档
3+
> https://redis.io/topics/sentinel
4+
- Redis-Sentinel(哨兵模式)介绍
5+
- Redis-Sentinel(哨兵模式)是Redis官方推荐的高可用性(HA)解决方案
6+
- Redis-sentinel本身也是一个独立运行的进程,它能监控多个master-slave集群,发现master宕机后能进行自动切换。
7+
- 它的主要功能有以下几点:
8+
- 不时地监控redis是否按照预期良好地运行;
9+
- 如果发现某个redis节点运行出现状况,能够通知另外一个进程(例如它的客户端);
10+
- 能够进行自动切换。当一个master节点不可用时,能够选举出master的多个slave(如果有超过一个slave的话)中的一个来作为新的master,其它的slave节点会将它所追随的master的地址改为被提升为master的slave的新地址。
11+
- 客户端连接redis主从的时候,先连接 sentinel,sentinel会告诉客户端主redis的地址是多少,然后客户端连接上redis并进行后续的操作。
12+
- Redis-Sentinel配置

src/Shell/deploy.sh.md

+6
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,12 @@
2323
php $WEB_BIN cache:clear --env=prod --no-debug
2424
echo "clear cache end."
2525
26+
echo "start clear doctrine cache..."
27+
php $WEB_BIN doctrine:cache:clear-metadata --env=prod
28+
php $WEB_BIN doctrine:cache:clear-query --env=prod
29+
php $WEB_BIN doctrine:cache:clear-result --env=prod
30+
echo "clear doctrine cache end."
31+
2632
echo "start update db schema"
2733
php $WEB_BIN doctrine:schema:update --force
2834
echo "update db schema end."

0 commit comments

Comments
 (0)