自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jiangbo721的博客

波波的私人博客

  • 博客(117)
  • 资源 (6)
  • 收藏
  • 关注

原创 MongoDB 在 upsert=True 时,filter和唯一键一致,并发情况下会报错:E11000 duplicate key error collection 怎么解决?

但是在高并发的情况下,我们会有多个服务同时更新同一个collection,操作都是update_one + upsert=true 来完成的,但是每隔一段时间,服务就会报错,提示 E11000 duplicate key error collection。我已经创建了一个复合索引,并使用搜索条件将其设置为唯一,这样,在集合中,如果搜索到的内容,我搜索的内容将始终唯一。所以嘛,是再mongo库执行upsert的时候 并发插入导致的唯一键冲突。查询不到就插入,查询到了就更新,那会有什么问题呢?

2023-01-11 18:02:04 1122 1

转载 如何保证消息队列的有序

转载自:xie.infoq.cn/article/c84491a814f99c7b9965732b1一、为什么出现顺序错乱?在生产中经常会有一些类似报表系统这样的系统,需要做 MySQL 的 binlog 同步。比如订单系统要同步订单表的数据到大数据部门的 MySQL 库中用于报表统计分析,通常的做法是基于 Canal 这样的中间件去监听订单数据库的 binlog,然后把这些 binlog 发送到 MQ 中,再由消费者从 MQ 中获取 binlog 落地到大数据部门的 MySQL 中。在这个过程中,可

2022-02-13 19:41:39 8268 4

原创 mac pyenv install 报错 error: implicit declaration of function ‘sendfile‘ is invalid

Installing Python-3.8.2...python-build: use tcl-tk from homebrewpython-build: use readline from homebrewpython-build: use zlib from xcode sdkBUILD FAILED (OS X 11.4 using python-build 2.1.0-22-g4b82f575)Inspect or clean up the working tree at /var/f

2021-10-27 19:13:18 938

原创 使用正则贪婪匹配 从不规则数据中找到想要的数据

前几天遇到一个需求,在数据库存储的是text类型,是字符串压缩后的json格式的但是呢 会有两种情况,第一种是对话形式的意见反馈,要取出最后一条content第二种是留言形式的意见反馈,要取出content第一种[{ "msg_id": 2, "type": 2, "content": "亲,可以说说具体是在使用哪个功能发生闪退的吗", "is_img": 0, "created_at": 1546484128 }, { "msg_id": 1, "type": 1

2021-05-12 11:22:35 299

转载 keras 在调用load_weights的方法是报 ‘str‘ object has no attribute ‘decode‘

之前的项目运行的很正常的,在切换了一次模型 重新部署的时候发现构建成功 ,运行时会报错。keras 在调用load_weights的方法是报错 File "/usr/local/lib/python3.6/site-packages/keras/engine/network.py", line 1166, in load_weights f, self.layers, reshape=reshape) File "/usr/local/lib/python3.6/site-packages

2021-05-08 10:41:11 932

原创 python 多线程使用生成器提示 ValueError: generator already executing 的解决方案

import threading''' A generic iterator and generator that takes any iterator and wrap it to make it thread safe. This method was introducted by Anand Chitipothu in http://anandology.com/blog/using-iterators-and-generators/ but was not compatib

2021-05-08 10:17:00 1503 1

原创 vim 从入门到丝滑

vim 从入门到丝滑文章目录vim 从入门到丝滑入门进阶Vim 中的各种字符串输入方式:移动光标拷贝/粘贴Undo/Redo搜索保存/退出高级替换:光标移动:更高效的操作:块操作: `^v`自动提示: `^n` 和 `^p`分屏:` split` 和 `vsplit`宏录制: `qa` 操作序列 `q`, `@a`, `@@`使用配置文件: .vimrc插件入门启动Vim后,vim在命令模式下。让我们进入 输入 模式,请按下键 i 。(你会看到vim左下角有一个–insert–字样,表示,你可以以插

2021-04-28 19:31:54 160

原创 mongoDB 批量将某个字段值等于另一个字段值

话不多说,直接上代码 db.collection_name.find().forEach( function(item){ db.collection_name.update({_id:item._id},{$set:{update_time:item.create_time}}) } )类似于js的写法,一个一个替换 相当于MySQL的update collection_name set update_time=create_t

2021-03-25 20:57:25 1880

原创 力扣184题,MySQL错误1055

问题描述:在MySQL数据库下,执行SQL插入语句报错。错误信息如下:错误原因:在MySQL5.7之后,sql_mode中默认存在ONLY_FULL_GROUP_BY,SQL语句未通过ONLY_FULL_GROUP_BY语义检查所以报错。ONLY_FULL_GROUP_BY:ONLY_FULL_GROUP_BY要求select语句中查询出来的列必须是明确的(其他语句也是一样)。以SQL语句select columns from table group by list为例:columns必须是聚集函数或

2021-02-20 17:05:23 134

转载 MongoDB之$关键字,以及$修饰器$set,$inc,$push,$pull,$pop

转载自:https://www.cnblogs.com/wqzn/p/10278217.html一.查询中常见的 等于 大于 小于 大于等于 小于等于等于:在MongoDB中,什么字段等于什么值就是" : ",比如 “name”:“路飞学城”、大于:在MongoDB中 大于号,我们用:$gt 比如 : “score” : { $gt : 80 } 就是 得到 “score” 大于 80 的数据大于等于 : 在MongoDB中的 大于等于 >= 号 我们用 : $gte 比如 : “sc

2020-12-16 15:30:47 1429 1

转载 执行 brew install 命令长时间卡在 Updating Homebrew 的解决方法

在国内的网络环境下使用 Homebrew 安装软件的过程中可能会长时间卡在 Updating Homebrew 这个步骤。例:执行 brew install composer 命令➜ ~ brew install composerUpdating Homebrew… # 如果碰到长时间卡在这里,参考以下 2 种处理方法方法 1:按住 control + c 取消本次更新操作➜ ~ brew install composerUpdating Homebrew…^C按住 control +

2020-11-20 16:03:24 499

原创 golang json Unmarshal的时候,在key为空的时候给予默认值

废话不多说,直接上代码package mainimport ( "fmt" "encoding/json")type Test struct { A string B int C string}func (t *Test) UnmarshalJSON(data []byte) error { type testAlias Test test := &testAlias{ A: "default A", B: -2, }

2020-10-28 13:57:29 3403

原创 pandas to_csv 报错 UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte *** invalid start byte

操作流程df.to_csv('out.csv', encoding="utf-8")执行完之后,提示 UnicodeDecodeError: ‘utf-8’ codec can’t decode byte *** invalid start byte错误原因有些字符不是ASCII码,因此不能用utf-8进行编码修改方法df.to_csv('out.csv', sep='\t', encoding='utf-8')一般情况下可以加上index=False来去除行号df.to_csv('out.

2020-10-20 11:15:03 928 1

原创 go interface 强制转换

GO 数据类型强制转换总是遇到接口返回格式类型不统一,或者返回不符合预期 经常报错。所以搞了个简单的数据类型强转。import ( "errors" "strconv" "strings")var ErrUnsigned = errors.New("The input is smaller than 0 ")func Force2uint64(input interface{}) (uint64, error) { var res uint64 if m, ok := inp

2020-08-04 12:00:29 5364 1

原创 docker build 提示 No space left on device

从文字上看是磁盘空间不足但是我电脑上的磁盘空间还很多,一直提示这个错误。网上找了很多清理磁盘空间的方法,都没法解决。比如删除/tmp下所有文件删除.log .logs文件删除大文件等等 都不行最后想到我可能本地镜像挺多的删除了本地多余镜像就好了。docker rmi $(docker images -qa)可以删除没有容器的镜像文件,比较安全的清除大量的暂时没有使用的镜像...

2020-06-30 15:13:23 1332 1

原创 Tensor(*** shape=(?, 1, ?, 5693), dtype=float32) is not an element of this graph.

Flask框架与TensorFlow不兼容的问题因为主线程是子线程的关系,以及flask使用了gevent异步,导致在其他线程没有主线程里的模型,最终导致识别报错。解决方法解决的方法也很简单第一种:取消代码中的gevent# from gevent import monkey;# monkey.patch_all()还有 启动时候取消geventgunicorn -w ${WORKER} -t 100 -k gevent -b 0.0.0.0:${PORT} server:appgun

2020-06-22 20:29:34 730

原创 siege的安装

siege一款开源的压力测试工具,可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。官方:http://www.joedog.org/Siege下载:http://soft.vpser.net/test/siege/siege-2.67.tar.gz解压:tar -zxf siege-2.67.tar.gz进入解压目录:cd siege-2.67/安装:./configure ; makemake install.

2020-06-20 14:26:20 166

原创 用python实现一个跳跃表

# coding: utf-8import randomclass Node(object): """ 跳跃表节点 """ def __init__(self, key, level): self.key = key # 当前节点的指向的下一个节点, 用列表维护对应的层数, 列表的索引是层数, 对象是节点 self.forward = [None] * (level + 1) def __str__(se

2020-05-25 16:51:35 598

原创 python json转字符串保留中文

python2python3源码解释If ensure_ascii is false, then the return value can contain non-ASCII characters if they appear in strings contained in obj. Otherwise, all such characters are escaped in JSON strings.如果ensure_ascii为false,那么返回值可以包含非ascii字符。否则,所有这些字

2020-05-20 11:35:05 1966

原创 AttributeError: 'Request' object has no attribute 'is_xhr'问题处理

File "/root/anaconda3/envs/python36/lib/python3.6/site-packages/gunicorn/workers/async.py", line 105, in handle_request respiter = self.wsgi(environ, resp.start_response) File "/root/anaconda3/envs/python36/lib/python3.6/site-packages/flask/app.py"..

2020-05-13 15:46:02 4385

原创 pycharm中background tasks一直updating python interpreter

打开一个项目,莫名其妙的一直在执行更新。等了两天还在更新,无奈搜了各种方法。最有效的方法:最后重启pycharm解决问题。

2020-04-29 14:45:35 17130 9

原创 go kafka consumer partitionconsumer demo

package mainimport ( "flag" "fmt" "log" "os" "os/signal" "strconv" "strings" "syscall" "github.com/Shopify/sarama")var ( brokerList = flag.String("brokers", os.Getenv("KAFKA_PEERS"), "...

2020-03-20 16:25:00 506

原创 mac 修改本地数据库密码 忘记密码

Mac本地安装了数据库,忘记数据库密码的情况下,可以按照以下步骤进行修改密码step1:关闭mysql服务: 苹果->系统偏好设置->最下边点mysql 在弹出页面中 关闭mysql服务(点击stop mysql server)step2:进入终端输入:cd /usr/local/mysql/bin/回车后 登录管理员权限 sudo su回车后输入以下命令来禁止mysql验...

2020-03-11 22:14:55 1757

原创 golang time 格式化 format 奇葩

真的是无语,第一次遇到这么奇葩的go语言中time的时间格式化"2006-01-02 15:04:05"像JS中的格式化"yyyy-MM-dd hh:mm:ss"像Python中的格式化"%Y-%m-%d %H:%M:%S"这个go居然直接用一个指定的6123452006年1月2日下午3点4分5秒这是个什么鬼。。。...

2020-03-01 12:40:52 708 1

原创 golang 设置 http response 响应头的坑

之前遇到个问题,在一段代码中这样设置WriteHeader,在浏览器怎么样都不是json。w.WriteHeader(http.StatusOK)w.Header().Set("Content-Type", "application/json; charset=utf-8")后来才知道如果这两种修改一起做,就必须让 w.WriteHeader 在所有的 w.Header.Set 之后,因...

2020-02-28 15:42:41 1945 2

原创 golang中map的声明与初始化

第一种:声明一个key是字符串,值为int的字典,这种方式的声明需要在使用之前使用make初始化var numbers map[string]int初始化numbers = make(map[string]int)var numbers map[string]intnumbers = make(map[string]int)numbers["one"] = 1 //赋值numbe...

2020-02-27 12:16:59 1234

原创 Mac 清除本地DNS缓存

sudo dscacheutil -flushcache一条命令搞定

2020-02-18 10:53:07 3377

原创 docker login 明明账号密码都正确却登录失败 提示 The user name or passphrase you entered is not correct.

使用命令docker login进行登录,输入用户名密码后报错:“the user name or passphrase you entered is not correct”,尝试过重装docker、重设密码均不奏效。解决方法:启动台-其他-钥匙串访问右键“登录“锁定钥匙串,然后再解锁重新登录docker,解决了!没错, 就是这么迷。。。至于原因,在github上有讨...

2020-01-17 15:20:08 6141 3

原创 413RequestEntityTooLarge

因为在nginx的默认配置中client_max_body_size是1M,当我们上传超过1M的时候,nginx就会返回413错误我们把bodysize改为最大20M,这样用户就可以上传最大20M的body了。注意:这个参数一定要加在server里面,再server_name参数后面即可。...

2019-12-26 11:34:00 136

原创 升级Catalina之后 根目录无法创建文件夹

在玩MongoDB的时候需要创建 /data/db 的文件夹结果提示mac mkdir read-only filesystem后来查是苹果升级后的安全限制只需要如下步骤:关机command+R 重启电脑进入恢复模式打开终端关闭 SIP(命令: csrutil disable )退出,重启解决问题...

2019-12-12 10:15:58 847

转载 浏览器的缓存机制

参考:深入理解浏览器的缓存机制一、前言缓存可以说是性能优化中简单高效的一种优化方式了。一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷。对于一个数据请求来说,可以分为发起网络请求、后端处理、浏览器响应三个步骤。浏览器缓存可以帮助我们在第一和第三步骤中优化性能。比如说直接使用缓存而不发起请求,或者发起了请求但后端存储的数据和前端...

2019-12-11 10:50:53 155

转载 单点登录原理与简单实现

参考:https://www.cnblogs.com/scode2/p/8671073.html

2019-12-06 13:39:37 92

原创 pandas 输出 excel 文件流 StringIO or BytesIO

# Writing Excel files to memory# Pandas supports writing Excel files to buffer-like objects such as StringIO or BytesIO using ExcelWriter.# Safe import for either Python 2.x or 3.xtry: from i...

2019-11-22 17:06:24 3730

原创 dictionary changed size during iteration 解决方法及联想

在字典遍历过程中修改字典元素,报错 RuntimeError: dictionary changed size during iteration得知遍历时不能修改字典元素for k in my_dict.keys(): if k in my_list: del my_dict[k]解决办法:将遍历条件改为列表for k in list(my_dict.keys()...

2019-11-15 16:44:09 10179

原创 SearchFilter 没有按自己预想的模糊搜索,自定义实现高级的django搜索

class SearchFilter(BaseFilterBackend): # The URL query parameter used for the search. search_param = api_settings.SEARCH_PARAM template = 'rest_framework/filters/search.html' lookup_p...

2019-11-14 10:45:47 2854

原创 django rest framework SearchFilter 增加搜索UUID功能

from rest_framework.filters import SearchFilterclass UUIDSearchBackend(SearchFilter): def get_search_terms(self, request): params = request.query_params.get(self.search_param, '') ...

2019-11-13 13:49:51 522

原创 UUID 正则表达式

因为在数据库存uuid的是没有这个 - 的,但是展示出来又有这个 - ,有的用户直接用这个 带有这个 - 的来搜索,最后执行sql的时候有匹配不到,所以我们需要在搜索的地方加一个正则匹配去掉 - 。但是搜到网上给的正则匹配是:'\w{8}(-\w{4}){3}-\w{12}'但是uuid是16进制,也就是只有0-9 a-f 但是这个\w 也太不严谨了吧所以我们就改了下uuid的...

2019-11-13 13:24:41 14232 8

原创 pandas神坑:如果列有NAN,则默认给数据转换为float类型

data = pandas.read_excel(file)结果读完一个excel,我所有为空的单元格,他全部给我按nan算了,好无语。然后debug去查看这个nan,居然还是float类型,为什么不用字符串呢?所以我们想把对应nan的数据改为自己想要的数据,就要操作一番。第一种:data.fillna('', inplace=True)直接替换读取到的数据中为空的数据为空字...

2019-11-11 13:43:21 6093 3

原创 Django路由APPEND_SLASH报错 自动补全 "/" 及 trailing_slash的解决方案

首先引用django/middleware/common.py中的简介""""Common" middleware for taking care of some basic operations: - Forbid access to User-Agents in settings.DISALLOWED_USER_AGENTS - URL rewrit...

2019-10-17 16:00:51 5369 1

原创 Mac 更新 Catalina 后 git不能用了 提示xcrun error

Сannot Run Gitxcrun: error: invalid active developer path (/Library/Developer/CommandLineTools),missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun 这是因为更新系统后会卸载xcode,重新安装后...

2019-10-11 10:42:12 1473

OpenAI Assistant API 简介

OpenAI Assistant API 简介

2023-12-23

浅谈 golang并发 GC

浅谈 golang并发 GC

2022-01-24

git-flow.pptx

git-flow 技术分享

2021-08-12

RPC 简介 及算法工程应用

RPC 简介 及算法工程应用

2021-08-12

SkipList.pptx

跳跃表 skiplist 技术分享

2021-08-12

InnoDB引擎MVCC实现原理.pptx

InnoDB引擎MVCC实现原理

2021-08-12

Mongo分享.pptx

从8个方面全面介绍MongoDB,自己分享的内容。 简介 与关系型数据库的对比 复制集机制及原理 文档模型设计 事务 索引 分片集群机制及原理 工具及实践

2021-08-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除