redis 的 del 不支持匹配符,只能通过 shell 命令来删除。1
redis-cli keys "*select*" | awk -F ') "' '{print "\""$1"\""}' | xargs redis-cli del
如果有密码和端口修改的话,加上相应的参数。
©版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 & 作者信息。
Happy Coding
redis 的 del 不支持匹配符,只能通过 shell 命令来删除。1
redis-cli keys "*select*" | awk -F ') "' '{print "\""$1"\""}' | xargs redis-cli del
如果有密码和端口修改的话,加上相应的参数。
©版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 & 作者信息。
Happy Coding
查看磁盘使用情况1
df -h
查看目录大小1
du -sh *
查看某个进程1
ps aux | grep php-fpm
监控某个日志文件1
2tailf error.log
tail -f error.log
监控服务器1
top
统计 access.log 文件访问次数最多的 ip 地址,并取前 10 条记录1
cat access.log | awk ‘{print $1}’ | sort | uniq -c | sort -k1nr | head -10
©版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 & 作者信息。
Happy Coding
在 PHP
中我们发送 http
请求常用的是 curl
,今天接触到其他几种方式,这里做下简单的记录。
这种是最常用的方式,我这里就不做记录了,平时开发中用的最多了。
我们可以使用 file_get_contents
的第三个参数来传递一个包装的 http stream
,下面来个简单的代码:1
2
3
4
5
6
7
8
9$opts = array(
'http' => array(
'method' => "GET",
'header' => "Content-type: application/x-www-form-urlencoded\r\n",
)
);
$context = stream_context_create($opts);
$result = file_get_contents("http://www.baidu.com", false, $context);
var_dump($result);
详细信息请阅读官方文档
1 | /* |
上面只是一个简单的例子,具体用法详细参考官方文档
©版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 & 作者信息。
Happy Coding
今天就对 Laravel
的队列功能做个简单的事例,我使用的驱动是 redis
,详细可以查看文档。
1 | php artisan make:queue SendMsg |
就会在 app/Jobs
目录下面生成 SendMsg.php
文件,下面我们去编辑。
1 | <?php |
最近服务器经常出问题,所以用命令 top
分析其性能,在这里对其做个记录,便于以后查看。
top
是常用的性能分析命令,基本和 windows
的任务管理器类似,下面详细介绍使用方法。
1 | > top |
下面将其参数做下详细的说明:1
top - 10:36:26 up 72 days, 22:21, 1 user, load average: 0.00, 0.01, 0.05
10:36:26:当前系统时间
up 72 days, 22:21:表示系统开机到现在的运行时间
1 user:当前登录系统的用户个数
load average:分别是1分钟、5分钟、15分钟的系统负载情况,
load average 数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。
RPC是 Remote Procedure Call 的缩写,从字面意思理解就是远程过程调用,详细解释 地址
Go 语言官方包里面实现了 RPC,我这里就来个小例子做下简单的演示。
1 | package main |
http 协议用于 web 开发,Go 语言中也实现了他,下面我们就来看下如何使用他。
1 | package main |
编译运行1
go run http.go
打开浏览器 http://localhost:8000
就可以看到效果了,是不是很简单。
利用 redis
实现附近的人功能,主要使用的是 redis
的 geo
数据类型,需要注意的是 redis
的版本。
软件和环境
centOS7, Redis4, phpredis3.1.4, PHP7
PHP的扩展我使用的是 phpredis
,如果你使用的是 predis
的话,请自行查找 api 文档,基本操作方法相似。
1 | $redis = new Redis(); |
我这里主要用 user:{id} 来做标记记录坐标信息1
2
3$redis->geoAdd("users", 116.365, 39.976, "user:1");
$redis->geoAdd("users", 116.366, 39.975, "user:2");
$redis->geoAdd("users", 116.364, 39.977, "user:3");
使用自己的坐标来搜索周边固定位置的用户1
2
3// 搜索附近 5km 的用户,并且返回距离
$options = ['WITHDIST'];
$lists = $redis->geoRadius('users', 116.36, 39.96, 5, 'km', $options);
根据上述获取的列表,可以将其进行分页展示。具体可以找 phpredis
文档 阅读详情。
我这里只是讲解了一个大概的思路,在具体的业务逻辑中,做具体的处理。
©版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 & 作者信息。
Happy Coding
我们这节就来实现创建文章,涉及的要点创建数据表,ORM,创建文章。
1 | # 分类表 |
我这里选择的 ORM
是 gorm
,安装方法为 go get -u github.com/jinzhu/gorm
1
2
3
4
5
6
7func GetDB() *gorm.DB {
db, err := gorm.Open("mysql", "go:123456@/video?charset=utf8&parseTime=True&loc=Local")
if err != nil {
panic("failed to connect database")
}
return db
}
1 | router.LoadHTMLGlob("views/**/*") |
建立目录 views
,创建 create.html
表单模板,这里就写一个简单的模板文件就行。1
2
3
4
5
6
7
8
9
10
11
12
13<form action="/posts/store" method="post">
<div>
标题:
<input type="text" name="title">
</div>
<div>
内容:
<input type="text" name="title">
</div>
<div>
<input type="submit" value="提交" >
</div>
</form>
1 | router.GET("/posts/create", PostCreate) |
1 | func PostCreate(c *gin.Context) { |
1 | type Posts struct { |