Submitted by admin on 2018, June 30, 3:49 PM
配置场景
再来看下主要参数
- MaxIdle
- 表示连接池空闲连接列表的长度限制
- 空闲列表是一个栈式的结构,先进后出
- MaxActive
- 表示连接池中最大连接数限制
- 主要考虑到服务端支持的连接数上限,以及应用之间”瓜分”连接数
- IdleTimeout
- 空闲连接的超时设置,一旦超时,将会从空闲列表中摘除
- 该超时时间时间应该小于服务端的连接超时设置
区分两种使用场景:
- 高频调用的场景,需要尽量压榨redis的性能:
- 调高MaxIdle的大小,该数目小于maxActive,由于作为一个缓冲区一样的存在,扩大缓冲区自然没有问题
- 调高MaxActive,考虑到服务端的支持上限,尽量调高
- IdleTimeout由于是高频使用场景,设置短一点也无所谓,需要注意的一点是MaxIdle设置的长了,队列中的过期连接可能会增多,这个时候IdleTimeout也要相应变化
- 低频调用的场景,调用量远未达到redis的负载,稳定性为重:
- MaxIdle可以设置的小一些
- IdleTimeout相应地设置小一些
- MaxActive随意,够用就好,容易检测到异常
- https://blog.csdn.net/xiaohu50/article/details/51606349
redis | 评论:0
| Trackbacks:0
| 阅读:543
Submitted by admin on 2018, June 30, 12:42 PM
从上面访问的结果发现。我们这边的< 之类的符号已经被转义成html 特殊符
上面的方法也是可以进行简化的
package main import ( "fmt" "html/template" "log" "net/http" ) func main() { //绑定路由 讲访问 / 绑定给 Handler 方法进行处理 http.HandleFunc("/", Handler) http.ListenAndServe(":8080", nil) } func Handler(w http.ResponseWriter, req *http.Request) { err := req.ParseForm() //如果解析失败 直接退出 输出对应的错误原因 if err != nil { log.Fatal(nil) } //获取 传递的name 参数 user_pro := req.FormValue("name") fmt.Fprintf(w, "%s", xss_hander(user_pro)) } func xss_hander(s string) string { return template.HTMLEscapeString(s) }
https://blog.csdn.net/liangguangchuan/article/details/54617685
golang | 评论:0
| Trackbacks:0
| 阅读:360
Submitted by admin on 2018, June 30, 10:25 AM
https://blog.csdn.net/easternunbeaten/article/details/72456240
https://beego.me/docs/mvc/model/transaction.md
golang | 评论:0
| Trackbacks:0
| 阅读:349
Submitted by admin on 2018, June 30, 10:23 AM
https://www.cnblogs.com/mingtianct/p/6291593.html
https://www.cnblogs.com/youxin/p/3833817.html
redis | 评论:0
| Trackbacks:0
| 阅读:470
Submitted by admin on 2018, June 30, 10:23 AM
https://blog.csdn.net/qq_17612199/article/details/79601222
https://blog.csdn.net/skh2015java/article/details/60334091
golang | 评论:0
| Trackbacks:0
| 阅读:371
Submitted by admin on 2018, June 30, 12:43 AM
https://studygolang.com/articles/10530
--------------
可以把k,v组织为一个struct的成员,把其用slice存放后,按照自己的排序方式对slice进行排序。
这种思想可以实现你想要的任意排序。
golang | 评论:0
| Trackbacks:0
| 阅读:394
Submitted by admin on 2018, June 29, 11:38 PM
https://blog.csdn.net/u013210620/article/details/78344771
golang | 评论:0
| Trackbacks:0
| 阅读:388
Submitted by admin on 2018, June 26, 11:58 PM
正则表达式的() [] {}有不同的意思。
() 是为了提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串。
(\s*)表示连续空格的字符串。
[]是定义匹配的字符范围。比如 [a-zA-Z0-9] 表示相应位置的字符要匹配英文字符和数字。[\s*]表示空格或者*号。
{}一般用来表示匹配的长度,比如 \s{3} 表示匹配三个空格,\s[1,3]表示匹配一到三个空格。
(0-9) 匹配 '0-9′ 本身。 [0-9]* 匹配数字(注意后面有 *,可以为空)[0-9]+ 匹配数字(注意后面有 +,不可以为空){1-9} 写法错误。
[0-9]{0,9} 表示长度为 0 到 9 的数字字符串。
————————————————————————————————————————————————————————————
圆括号()是组,主要应用在限制多选结构的范围/分组/捕获文本/环视/特殊模式处理
示例:
1、(abc|bcd|cde),表示这一段是abc、bcd、cde三者之一均可,顺序也必须一致
2、(abc)?,表示这一组要么一起出现,要么不出现,出现则按此组内的顺序出现
3、(?:abc)表示找到这样abc这样一组,但不记录,不保存到$变量中,否则可以通过$x取第几个括号所匹配到的项,比如:(aaa)(bbb)(ccc)(?:ddd)(eee),可以用$1获取(aaa)匹配到的内容,而$3则获取到了(ccc)匹配到的内容,而$4则获取的是由(eee)匹配到的内容,因为前一对括号没有保存变量
4、a(?=bbb) 顺序环视 表示a后面必须紧跟3个连续的b
5、(?i:xxxx) 不区分大小写 (?s:.*) 跨行匹配.可以匹配回车符
方括号是单个匹配,字符集/排除字符集/命名字符集
示例:
1、[0-3],表示找到这一个位置上的字符只能是0到3这四个数字,与(abc|bcd|cde)的作用比较类似,但圆括号可以匹配多个连续的字符,而一对方括号只能匹配单个字符
2、[^0-3],表示找到这一个位置上的字符只能是除了0到3之外的所有字符
3、[:digit:] 0-9 [:alnum:] A-Za-z0-9
——————————————————————————————————————————————————————————————————————
()和[]有本质的区别
()内的内容表示的是一个子表达式,()本身不匹配任何东西,也不限制匹配任何东西,只是把括号内的内容作为同一个表达式来处理,例如(ab){1,3},就表示ab一起连续出现最少1次,最多3次。如果没有括号的话,ab{1,3},就表示a,后面紧跟的b出现最少1次,最多3次。另外,括号在匹配模式中也很重要。这个就不延伸了,LZ有兴趣可以自己查查
[]表示匹配的字符在[]中,并且只能出现一次,并且特殊字符写在[]会被当成普通字符来匹配。例如[(a)],会匹配(、a、)、这三个字符。
所以() [] 无论是作用还是表示的含义,都有天壤之别,没什么联系
https://www.cnblogs.com/signheart/p/20a396bdbdeb9aa446663395eea4e3c4.html
golang | 评论:0
| Trackbacks:0
| 阅读:328