MySQL
2021-11-25 12:24:14
281
0
0
## 1.
在MySQL 5.6版本以前,只有MyISAM存储引擎支持全文引擎.在5.6版本中,InnoDB加入了对全文索引的支持,但是不支持中文全文索引.在5.7.6版本,MySQL内置了ngram全文解析器,用来支持亚洲语种的分词.
在学习之前,请确认自己的MySQL版本大于5.7.6.我的版本为8.0.同时文中的所有操作都基于InnoDB存储引擎.
查询mysql版本,设置全文索引
2021-11-19 17:55:19
470
0
0
## 1 背景
> 保护服务节点或者数据节点,防止瞬时流量过大造成服务和数据崩溃,导致服务不可用
## 2 主流限流算法
### 2.1 固定/滑动窗口限流算法
#### 2.1.1 固定窗口限流
实现过程:
也叫计数器算法,顾名思义就是固定一个窗口,在这个时间窗口下维护一个累加的计数器,每来一个请求计数器+1,并判断计数是否超过阈值,
超过阈值则拒绝请求直到下一个时间窗口将计数器清零再继
MySQL
2021-10-07 11:56:13
302
0
0
我们需要先进入MySQL,之后直接修改密码:
```
alter user user() identified by "我的密码";
```
MySQL
2021-10-07 11:47:12
207
0
0
使用`ALTER USER`命令可以用来修改用户的口令,设置口令过期,锁定以及解锁用户等等。
1、修改用户的口令,将用户的口令修改为新的密码
```
ALTER USER SCOTT IDENTIFIED BY NEWPASSWORD;
SQL> ALTER USER SCOTT IDENTIFIED BY SOCTT;
用户已更改。
```
2、设置用户口令过期,通过设置用户过期,这样该
2021-10-04 19:50:35
302
0
0
Linux 中 /boot 是存放系统启动文件的地方,安装 ubuntu 时单独分区给 200M 足够,但是系统内核更新后,老的内核依然保存在 /boot 分区内,几次升级后,就会提示 /boot 空间不足。
我们只要删掉老的内核,将空间释放出来就可以了。
先查看系统当前使用的什么版本的内核 uname -a
```
$ uname -a
Linux ubuntu-ThinkPad-Edge
2021-09-14 12:22:34
313
0
0
2021-07-23 16:34:16
392
0
0
Docker Desktop WSL2 默认会安装2个子系统,使用命令`wsl -l -v --all`查看。
![title](https://blog.admpub.com/api/file/getImage?fileId=60fa7f0704aa0406d8000245)
*docker-desktop*是存放程序的,*docker-desktop-data*是存放镜像的,这两个wsl子
2021-07-23 16:17:45
312
0
0
wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Running 2
导出分发版为tar文件到d盘
wsl --export Ubuntu-20.04 d:\ubuntu20.04.tar
注销当前分发版
wsl --unregister Ubuntu-20.04
重新导入并安装分发版在d:\ubuntu
wsl --import Ubuntu-20.04 d:\ubuntu d:\ubuntu20.04.tar --version 2
设置默认登陆用户为安装时用户名
ubuntu2004 config --default-user Username
删除tar文件(可选)
2021-07-22 14:23:20
277
0
0
订阅subscribe
package main
import (
"fmt"
"github.com/go-redis/redis"
)
func main() {
client := redis.NewClient(&redis.Options{
Addr: "127.0.0.1:6379",
Password: "",
DB: 0,
})
pubsub := client.Subscribe("chat")
defer pubsub.Close()
for msg := range pubsub.Channel() {
fmt.Printf("channel=%s message=%s\n", msg.Channel, msg.Payload)
}
}
订阅psubscribe
package main
import (
"fmt"
"github.com/go-redis/redis"
)
func main() {
client := redis.NewClient(&redis.Options{
Addr: "127.0.0.1:6379",
Password: "",
DB: 0,
})
pubsub := client.PSubscribe("*")
defer pubsub.Close()
for msg := range pubsub.Channel() {
fmt.Printf("channel=%s message=%s\n", msg.Channel, msg.Payload)
}
}
发布publish
package main
import (
"fmt"
"github.com/go-redis/redis"
)
func main() {
client := redis.NewClient(&redis.Options{
Addr: "127.0.0.1:6379",
Password: "",
DB: 0,
})
n, err := client.Publish("chat", "hello").Result()
if err != nil{
fmt.Printf(err.Error())
return
}
fmt.Printf("%d clients received the message\n", n)
}
2021-07-16 13:31:44
277
0
0
```go
package main
import (
"fmt"
"log"
"os"
"path"
"path/filepath"
"runtime"
"strings"
)
func main() {
fmt.Println("getTmpDir(当前系统临时目录) = ", getTmpDir())
fmt.Println("getCurrentAbPathByEx
3/10