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    471    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

首先查看所有分发版本

  1. wsl -l -v
  1.   NAME STATE VERSION
  2. * Ubuntu-20.04 Running 2

导出分发版为tar文件到d盘

  1. wsl --export Ubuntu-20.04 d:\ubuntu20.04.tar

注销当前分发版

  1. wsl --unregister Ubuntu-20.04

重新导入并安装分发版在d:\ubuntu

  1. wsl --import Ubuntu-20.04 d:\ubuntu d:\ubuntu20.04.tar --version 2

设置默认登陆用户为安装时用户名

  1. ubuntu2004 config --default-user Username

删除tar文件(可选)

  1. del d:\ubuntu20.04.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