- 博客(11)
- 收藏
- 关注
原创 go实现组内排序取前n
有个业务涉及到了需要取数据分组后的前两条,内容大概是要获取每个用户热度最高的前两个视频,本来是用sql的 row_number实现的,结果觉得逻辑略显复杂,而且也不想让数据库处理复杂的查询,于是打算把数据查出来后,通过代码进行排序和取前二的值(可能这种做法不太可行,但没办法,数据量不大),组内排序代码如下:借鉴了希尔排序做法//分组排序取前n//结构为 map[组id]map[组内每个值的id]排序的值 n为取前n//返回:map[组id][]组内idfunc aaa(arr map[int32
2021-08-19 10:41:43
485
原创 mysql update受影响的行数
update时受影响行数产生的问题今天测试同学提出一个很诡异的bug,大致内容为在富文本输入框中频繁粘贴同一张图片的时候,会出现文件上传失败的问题,顺着链路,我发现是文件服务那边的锅,然而可以解决问题的人因为各种原因解决不了,我只好去拉代码自己去看了。发现文件上传接口在上传一个之前已经上传过的文件时,他会重新获取文件信息,然后把表中已存在的这条数据(文件信息)再重新修改一遍。发现其中有一个update_time,里面存的是时间戳。因为文件上传失败的问题只有在频繁上传同一个文件时才会出现,所以我觉得和这个s
2021-04-15 13:45:59
1690
原创 redis字符串类型-简单动态字符串
本文参考redis系列丛书《Redis设计与实现》redis字符串介绍redis并没用我们常用的C语言中的字符串进行表示,而是自己创建了一个叫 简单动态字符串(简称SDS全称Simple Dynamic String) 的抽象类型。内部构造如下//****redis3.2之前的版本************************************struct sdshdr { // 记录 buf 数组中已使用字节的数量 // 等于 SDS 所保存字符串的长度 int
2021-03-10 16:41:10
140
原创 有道词典命令行工具
无聊用go语言写了一个命令行工具,分为服务端(采用了gin框架)和客户端,服务端放在了自己的服务器上用来和有道词典api交互,客户端用来调用服务端接口,进行文本翻译。码云地址在这里已经打包好了win、osx、linux的可执行文件,在系统的全局变量配置一下即可在任一命令行使用...
2021-02-08 04:10:17
371
原创 记录一次腾讯CLB负载均衡引起的线上问题
上上周五我司把部分项目从阿里挪到了腾讯的服务器,其中负载均衡也理所当然的从之前阿里的SLB换成了CLB。迁移完之后,突然就有用户反映大文件上传不上去,类似这种:于是乎,我去日志里面去看日志,发现根本就没有日志,连nginx的请求日志都没有。这不应该呀,于是呼我用postman尝试着调用了一下,结果返回的是下面这个,(先记住下面那一行,一会会用到)这里的413一看就是nginx那一层给报的,在我反映给运维之后,我自己也去跳板机连线上服务器,去看nginx配置,结果发现配置的client_max_bo
2020-12-23 17:18:27
1739
原创 最小栈 -栈 leetcode题库第一百五十五题
来自力扣leetcode题库里面的第155题,《最小栈》链接:https://leetcode-cn.com/problems/min-stack题目为:设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。例:MinStack minStack = new MinStack();minStack.pus
2020-12-23 17:15:23
119
原创 有效括号-栈 leetcode题库第二十题
来自力扣题库第20题链接:https://leetcode-cn.com/problems/valid-parentheses给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true这个题可以用数据结构里面的栈进行实现(这是未优化的,优化后使用一个栈就可以,详情看最下方)function a($
2020-12-23 17:13:36
135
原创 nginx配置小记
nginx配置禁止ip访问时,我是这样配置的,把没匹配上域名的80端口请求都走这里。 server { listen 80 default; server_name _; default_type text/html; add_header Content-Type 'text/html;charset=utf-8'; return 200 '小朋友,请不要黑我,我谢您全家≧◉◡◉≦';
2020-12-23 17:11:12
1456
原创 redis自带了三个扩展类型
redis自带了三个扩展类型1:BitMap主要用于存储1 or 0 应用场景在点赞 收藏 浏览 签到,优点是采用二进制存储,每一位都代表一个信息,占用空间小,缺点是只能记录当前状态,不能记录历史记录,比如它对这个作品点赞了几次,取消了几次,以及对应的时间点等等2:HyperLogLog3:GeoHash主要用来记录经纬度,可以搜索出附近几公里、米、英尺等的数据,底层使用了有序集合数据结构...
2020-12-23 17:09:53
191
原创 比较两个切片是否一致
比较两个切片是否一致类似于PHP的array_diff函数,不过,这里返回的值是true or false代码如下//比较两个切片 值是否一致//例1:[1,2,3,3] [2,1,2,3] 返回true//例2:[1,2,3] [2,1,2,3] 返回true//例3:[5,2,3,2] [2,1,2,3] 返回falsefunc SliceComparison(a, b []string) bool { aMap := map[string]bool{} bMap := map[s
2020-12-23 17:02:02
535
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人