自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 安卓微信二次分享不显示描述和图片

问题描述在做微信分享的时候有遇到过这样的问题,,第一次分享到微信,描述和图片都能正常显示,但是打开连接用微信自带的分享功能进行分享时,就会出现以下情况:描述变链接、图片不显示、标题变更。导致的原因实现微信分享需要调用JSSDK的两个分享接口,按照微信JSSDK最新JS 1.4.0文档上说:“原有的 wx.onMenuShareTimeline、wx.onMenuShareAppM...

2019-01-08 13:42:38 6528 3

原创 redis雪崩、穿透、击穿

正常网络请求如下:雪崩定义:大量缓存在同一时间失效,请求全部落在数据库,导致数据库挂了事例:解决方案:1、设置不同的过期时间,如随机过期时间2、设置redis集群,热点数据分布在不同的服务器节点上3、定时job去更新缓存4、不设置缓存过期时间 (基本Pass,缓存很占内存)穿透定义:缓存和数据库中都没有的数据,用户一直大批量的请求事例:黑客大批量访问 id<0 的数据,导致服务器宕机解决方案:1、无论mysql是否有值,都设置缓存2、参数合法性验证3、使用

2021-09-01 00:09:14 198

原创 python多进程管理工具supervisor

什么是supervisorsupervisor是基于python的多进程管理工具,可管理和监控Linux上面的进程状态。为什么要使用supervisor1、在一个分布式环境中,每台机器上可能需要启动和停止多个进程,使用命令行方式一个一个手动启动和停止非常麻烦,而且查看每个进程的状态也很不方便。而supervistor能监控进程状态,异常退出时能自动重启2、它有很多的优势(简单,精确,进程组,集中式管理,有效性,可扩展性)。使用步骤1、 mac安装surpervisorpip inst

2021-08-30 09:56:41 685

原创 MQ异常, 补发消息

MQ异常, 补发消息需求背景MQ 发送消息失败, 导致依赖MQ的相关业务无法正常处理如: LB 负载连接断开,导致 mq 连接超时,发消息失败目的重要业务,mq消息需要补发方案设计定义需补发的业务级别业务收徒订单…方案注册补发业务格式# MQ 使用需要进行备份,异常补发的业务MQ_CHECK_JOBS = [ { "title": "收徒奖励 JOB", "exchange": "xxx.topic",

2021-07-27 11:36:39 626

原创 项目设计从哪几个方面去写

绪言文档目标读者为产品经理: 确认功能描述和产品经理需求一致设计开发人员: 用以收集、整理、验证需求,并用以建模设计质量保障人员: 用以分析整理测试 test case运维人员: 确认需要运维的部分及如何运维项目管理人员: 管理需求变更历史遗漏的问题暂无目标新品优惠通过广告主购买新品优惠券的形式进行使用限制新品优惠的使用资格避免新品优惠消耗配送金额需求分析新品消耗方案设计表结构调整充值表 prepayment 添加字段account_type : 币种类

2021-06-02 18:20:06 357

原创 MQ服务简介

一、mq简介mq 的特点:屏蔽异构平台的细节:发送方、接收方系统之间不需要了解双方,只需认识消息。异步:消息堆积能力;发送方接收方不需同时在线,发送方接收方不需同时扩容(削峰)。解耦:防止引入过多的API给系统的稳定性带来风险;调用方使用不当会给被调用方系统造成压力,被调用方处理不当会降低调用方系统的响应能力。复用:一次发送多次消费。可靠:一次保证消息的传递。如果发送消息时接收者不可用,消息队列会保留消息,直到成功地传递它。提供路由:发送者无需与接收者建立连接,双方通过消息队列保证消息能够从

2021-05-31 19:07:52 1091

原创 AJAX参数和file文件一起提交

很多时候,我们需要在提交参数和上传file文件,其实不用form表单用ajax也可以实现如下图:参数和文件一起提交html<div class="body"> <p> <span class="form-title" style="">推送类型</span> <input type="radio" onclick="remote_push()" name="push_type" value="0"

2021-04-01 16:36:24 1852

原创 SQL 多个字段的值拼接成Josn

语法结构如下:注意多个字段不要换行, 仔细看最后一个字段的格式SELECT ColumnName1, CONCAT('{anytName:"', yourColumnName, '", anyName:"', yourColunName, '"}') as ext FROM TableNameGROUP BY ColumnName1;执行结果如下图:...

2020-12-02 16:58:37 2269

原创 SQL把一个表中的数据复制到另一个表中

1、整表复制如下:insert into table1 select * from table22、有选择性的复制数据如下:注:查询的字段和插入的字段顺序要一样insert into table1(column1, column2, column3...) select column1, column2, colunm3... from table23、不同数据库,复制方法如下:insert into 数据库A.dbo.table1(col1, col2, col3...)

2020-12-02 16:45:45 17129

原创 Git 常用命令

批量删除方法使用命令: git branch |grep ‘分支过滤关键字’ |xargs git branch -D

2020-11-18 11:32:39 143

原创 接口如何写的健壮

对外对接永远不要信任对方的接口多增加异常处理必须验证对方的返回结果是否与文档一致充分考虑对方接口出现问题的情况响应时间过长出现文档以外的返回格式正常情况之外的状态码自己的模块函数行为要一致返回多个值时,各个返回点返回的数量要相同返回类型也要一致最好不要在返回值中混用None和False验证函数返回结果时,不要随便使用if notbool(None)bool(False)bool('')bool([])bool({})bool(0)多使用现成的解决方案,

2020-07-07 18:20:32 1066

原创 基于 MYSQL 的分区分表

一、为什么要分区分表1.海量数据的产生,需要数据查询和分析,系统响应会变慢,TPS下降,直至服务不可用2.单个表数据量越大,读写锁,插入操作重新建立索引效率越低,为了支撑高并发、数据量大的问题。二、分区定义:就是把一张表的数据分成N个区块,在逻辑上看最终只是一张表,但底层是由N个物理区块组成的什么时候可以考虑分区?一张表的查询速度已经慢到影响使用sql需要优化数据量大表中的数据是分段的对数据的操作往往只涉及一部分数据,而不是所有的数据分区分表的类型水平分区:这种形式分区是对表的

2020-07-07 18:08:14 179

原创 python 时间转换(datetime)

datetime是Python处理日期和时间的标准库获取当前时间import datetime# datetime类型day = datetime.datetime.now()day2 = datetime.date.today()print("当前年月日时分秒:", day)print("只查看年月日:", day2)执行结果: 当前年月日时分秒: 2018-09-19...

2019-10-22 17:50:58 1808

原创 使用json-server来Mock后端api数据

项目开发中,为保证项目进度,前后端不相互依赖,前端需要自己造api返回的数据来写页面的各种逻辑,而页面写死假数据的做法效率太差,所以就有了Mock数据的方法,最常用的方法就是json-serverjson-server是什么?json-server顾名思义,是个存储json数据的server,是Node的一个模块,模拟服务端接口数据,一般用在前后端分离后,前端人员可以不依赖API开发,而在...

2019-05-19 11:49:57 755

原创 Linux 基础命令(一)

命令解析器:1、shell:unix 操作系统2、bash:linux 操作系统本质:根据命令的名字,去调用对应的可执行的程序,如:dateLinux 快捷键#### 历史命令1、history:历史操作命令2、ctrl + P : 历史上一条命令3、ctrl + N :历史下一条命令 #### 光标命令4、ctrl + B : 光标向前移动5、ctrl + F : ...

2019-05-18 18:44:41 134

原创 (二)React安装

安装1、安装Node.js先查看自己电脑是否安装了Node:打开cmd ,输入node -v 查看是否安装。没安装的话可以在官网 https://reactjs.org/ 下载最新版。2、安装淘宝镜像cnmp# 可能会提示没权限,在前面加个sudo就可以了$ sudo npm install -g cnpm --registry=https://registry.npm.taob...

2019-04-07 18:02:03 211

原创 (一)React简介

React2013年诞生,来自Facebook.React不是一个完整的MVC框架(和Angular不同),只提供简单的View层解决方案,它的核心功能主要是构建组件(事实上就是为了组件开发而诞生的),并提供类似控制器的函数接口和生命周期函数。React非常轻,只提供组件化非常少的API,简化了一切可以简化的东西。React最主要的技能是:使用Virtual DOM技术,使得它的性能卓越...

2019-04-07 16:12:40 240

原创 python 各种数据类型排序

这里没有一下子写全,实际项目中用到了才会补写!1、列表排序可利用python内置函数:sort() :对原列表进行排序,所以该方法没有返回值,默认排序方式是:升序 (reverse = False )语法如下:python3拿掉了python2的cmp参数list.sort(key=None, reverse=False),实例如下:# 默认升序&amp;amp;amp;gt;&amp;amp;amp;gt;&amp;amp;amp;gt...

2019-03-06 17:48:59 2144

原创 为什么Python中dict不要轻易用update()操作赋值?

dict类型的update()介绍“”&quot;D.update([E, ]**F) -&amp;gt; None. Update D from dict/iterable E and F.If E is present and has a .keys() method, then does: for k in E: D[k] = E[k]If E is present and lacks a .keys...

2019-02-21 17:59:46 8745

原创 在程序计算中涉及到钱的时候,为什么要用Decimal而不是Float

之前在写代码的时候遇到一个坑,计算钱的时候总是不对,最终才发现是类型转换问题导致的浮点数 vs Decimal&amp;gt;&amp;gt;&amp;gt; from decimal import Decimal&amp;gt;&amp;gt;&amp;gt; a = 0.36&amp;gt;&amp;gt;&amp;gt; b = str(a)&amp;gt;&amp;gt;&amp;gt; b'

2019-02-17 22:26:37 1965

原创 使用Redis做实时排行榜

设想在一个游戏中,有上百万的玩家数据,如果现在需要你根据玩家的经验值整理一个前20名的排行榜,你会怎么做呢?一般的做法是写一条类似下面这条sql语句的方式来获取:select * from game_socre order by score desc limit 0,20这种方式在数据量较小的情况下可行,但是在数据量大的情况下查询速度将变慢,特别是还需要联表查询时,速度下降的就更明显了。...

2019-02-15 17:45:52 13416 4

原创 python 装饰器的用法

python装饰器本质上是一个python函数,它可以让其它函数在不改动任何代码的前提下增加额外的功能,其返回值也是一个函数对象装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。装饰器是解决这类问题的绝佳设计,有了装饰器,我们...

2019-01-22 14:46:51 119

原创 python bool()方法详解

bool()是python的内置函数参数如果缺省,则返回False&amp;gt;&amp;gt;&amp;gt; bool()False传入布尔类型,按原值返回&amp;gt;&amp;gt;&amp;gt; bool(True)True&amp;gt;&amp;gt;&amp;gt; bool(False)False传入字符串,空字符串返回False,否则返回True&amp;gt;&am

2019-01-20 19:25:31 10271 2

原创 python 字典的get()pop()方法的区别

get()方法返回指定键 key 的值,如果值不在字典中返回默认值。语法:dict.get(key, default=None)参数:key – 字典中要查找的键default – 如果指定键的值不存在时,返回该默认值值实例:key存在,则返回key对应的值&amp;gt;&amp;gt;&amp;gt; t = {'name': 'summer', 'age': 23}&amp;gt;&amp;gt...

2019-01-20 19:22:44 3377 1

原创 Redis 安装介绍

Redis 简介Redis本质上是一个Key-Value存储系统,并提供多种语言的API,被称为数据结构服务器。Redis 特点支持数据持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载。支持数据备份,即master-slave模式的数据备份支持多种数据结构存储: 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted ...

2018-12-17 15:58:19 121

原创 Mysql和Redis

Mysql和Redis是项目开发中必定会用到的技能点,也是每次面试必问的知识点之一。&amp;nbsp;Mysql是关系型数据库,以文件形式把所有数据都储存在磁盘中,支持数据备份,持久化存储,支持复杂的查询语句,但是每次对数据进行检索的时候就会涉及到磁盘IO操作,使用IO调度器进行检索,该调度器也被称为电梯,必须一层一层的执行直到底部才能返回,从而大大的降低了运行速度。&amp;nbsp;Redis是内存...

2018-12-17 14:37:57 301

原创 始于足下

序言,闲谈内容…90后愤青,在编程的道路上摸爬滚打好几年的妹子,起初是php开发,后因换公司使用python开发…为什么现在才开始写博客记得曾经带我的老大都说过这样的一句话:“没事的时候多写写博客,定期把自己脑子里储存的东西整理整理,避免因时间过长忘记,也可在整理的过程中搞懂模棱两可的知识点,对自己的技术会有很大的提升”。那个时候也有想写自己的博客,因为内心对这些博客大佬很崇拜,感觉很牛逼...

2018-12-14 15:49:57 122

空空如也

空空如也

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

TA关注的人

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