自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

sun

博主很懒 请多光照!

  • 博客(250)
  • 资源 (1)
  • 收藏
  • 关注

原创 js 平行上下级关系的数据转换成树形结构算法

const list = [ {"id":6,"departmentId":1,"name":"a","name_en":null,"parentid":0,"order":65535,}, {"id":7,"departmentId":2,"name":"b","name_en":null,"parentid":1,"order":65535,"isDelete":0}, {"id":8,"departmentId":4,"name":"c","name_en":null,"parentid.

2020-12-28 11:57:27 496

原创 ant 多级多选

import React, { PureComponent } from 'react';import _ from 'lodash';import { Cascader, Tag } from 'antd';class CascaderMul extends PureComponent { state = { value: [], }; allLabel = []; componentDidMount() { const { options } = this..

2020-12-28 11:49:15 763

原创 js 一致性hash算法

https://blog.csdn.net/sparkliang/article/details/5279393npm库https://www.npmjs.com/package/consistent-hashing

2020-12-21 00:40:59 540 1

原创 js 哈希散列值的模块

https://www.npmjs.com/package/fnv-plusvar fnv = require('fnv-plus'), astring = 'hello world', ahash52 = fnv.hash(astring), // 52-bit hash by default ahash64 = fnv.hash(astring, 64); // 64-bit hash specifiedconsole.log(ahash52.hex

2020-12-21 00:39:04 218

转载 node 桶排序

实现思路与步骤思路设置固定空桶数 将数据放到对应的空桶中 将每个不为空的桶进行排序 拼接不为空的桶中的数据,得到结果步骤演示假设一组数据(20长度)为[63,157,189,51,101,47,141,121,157,156,194,117,98,139,67,133,181,13,28,109] 现在需要按5个分桶,进行桶排序,实现步骤如下: 找到数组中的最大值194和最小值13,然后根据桶数为5,计算出每个桶中的数据范围为(194-13+1)/5=36.4 遍历

2020-12-21 00:34:25 167

原创 nodejs 文件操作

import fs from 'fs';import path from 'path';import glob from 'glob';import mkdirp from 'mkdirp';import rimraf from 'rimraf';export const readFile = file => new Promise((resolve, reject) => { fs.readFile( file, 'utf8', (.

2020-09-08 12:13:53 193

原创 js 深拷贝对象库

const extend = require('extend2'); // for deep cloneextend(true, {}, object1, objectN);

2020-08-27 09:00:08 677

转载 snowflake算法解决分布式ID自动生成

nodejs版本实现https://www.npmjs.com/package/node-snowflake#see-examplesexamplejs//only run simple http serverrequire('node-snowflake').Server(3001);//request url example:GET http://localhost:3001/next_id?worker_id={optional}&data_center_id={option.

2020-08-27 01:13:11 2044

转载 mongodb 桶模式(The Bucket Pattern)

桶模式随着数据在一段时间内持续流入(时间序列数据),我们可能倾向于将每个测量值存储在自己的文档中。然而,这种倾向是一种非常偏向于关系型数据处理的方式。如果我们有一个传感器每分钟测量温度并将其保存到数据库中,我们的数据流可能看起来像这样:{ sensor_id: 12345, timestamp: ISODate("2019-01-31T10:00:00.000Z"), temperature: 40}{ sensor_id: 12345, timestamp:

2020-08-25 08:53:45 2375

转载 MySQL 分库分表

Mysql分库分表方案1.为什么要分表:当一张表的数据达到几千万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。mysql中有一种机制是表锁定和行锁定,是为了保证数据的完整性。表锁定表示你们都不能对这张表进行操作,必须等我对表操作完才行。行锁定也一样,别的sql必须等我对这条数据操作完了,才能对这条数据进行操作。2. mysql proxy:amoeba做mysql集群,利用amoeba。从上层的java

2020-08-24 13:25:51 200

原创 redis 分布式与集群

https://www.jianshu.com/p/21110d3130bc

2020-08-18 18:53:22 111

原创 解决缓存穿透:布隆过滤器

https://blog.csdn.net/liebert/article/details/79737042https://blog.csdn.net/thlzjfefe/article/details/106056326

2020-08-18 12:00:21 126

转载 分布式系统中一致性哈希算法

业务场景近年来B2C、O2O等商业概念的提出和移动端的发展,使得分布式系统流行了起来。分布式系统相对于单系统,解决了流量大、系统高可用和高容错等问题。功能强大也意味着实现起来需要更多技术的支持。例如系统访问层的负载均衡,缓存层的多实例主从复制备份,数据层的分库分表等。我们以负载均衡为例,常见的负载均衡方法有很多,但是它们的优缺点也都很明显:随机访问策略。系统随机访问,缺点:可能造成服务器负载压力不均衡,俗话讲就是撑的撑死,饿的饿死。 轮询策略。请求均匀分配,如果服务器有性能差异,则无法实现性能

2020-07-29 21:59:34 195

原创 nodejs 自动重启工具nodemon

https://www.npmjs.com/package/nodemon全局安装npm install -g nodemon启动程序nodemon [your node app]

2020-07-01 20:43:32 283

原创 redux react-redux中文文档及教程

Redux 中文文档https://cn.redux.js.org/react-redux中文翻译https://segmentfault.com/a/1190000017064759?utm_source=tag-newest#item-2-3Redux 入门教程http://www.ruanyifeng.com/blog/2016/09/redux_tutorial_part_one_basic_usages.htmlRedux 入门教程(二):中间件与异步操作http:...

2020-06-17 18:53:44 926

原创 javaScript中测试代码执行时间

console.time('time'); for (var i = 0; i < 10000000; i++) { i / 2; } console.timeEnd('time');

2020-04-08 17:46:05 1822

原创 node redis锁的实现

锁是一种同步机制,用于保证一项资源在任何时候只能被一个进程使用,如果有其他进程想要使用相同的资源,那么就必须等待,直到正在使用资源的进程放弃使用权为止。const redis = require("redis"), client = redis.createClient();client.on("error", function (err) { console.log("...

2020-03-09 23:18:26 1154

原创 微信小程序绘制雷达图(多边形绘制)

WXML<canvas canvas-id="canvas" class="canvas" style="width: 700rpx; height: 600rpx;background:#fff;;"/>JSconst app = getApp()Page({ data: {}, onLoad: function () { // 能力值数据 ...

2020-03-09 22:05:58 1770 1

原创 颜色值16进制转rgba

/** * 颜色值16进制转rgba * @param {String} hex 16进制 * @param {Float} opacity 透明度 */ hexToRgba(hex, opacity) { let result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex); retu...

2020-03-09 15:22:53 1825 1

原创 小程序同时绘制阴影与渐变色

//获取应用实例const app = getApp()Page({ onLoad: async function () { //小程序渐变色和阴影不能够同时设置,只能初始化一方再设置另一方 const ctx = wx.createCanvasContext('canvas') ctx.beginPath() ctx.setFillS...

2020-03-09 15:18:03 579

原创 MYSQL使用锁解决高并发更新丢失问题

排他锁:排他锁通过在事务中使用select ...for update语句来实现,排他锁会在当前行加一个行级锁,在释放锁(事务结束)之前其他事务不能再对该数据加锁,在并发的情况下,后执行的事务就会被堵塞,直到当前事务执行完成。(通过锁把并发改成了顺序执行)对SELECT进行加锁的方式有两种,只有在事务之中才能生效,否则不会生效SELECT ... LOCK IN SHARE MODE ...

2019-12-11 14:56:39 461

原创 js 使用占位符拼接字符串

String.prototype.format = function() { if(arguments.length == 0) return this; var param = arguments[0]; var s = this; if(typeof(param) == 'object') { for(var key in param) ...

2019-11-25 15:51:21 2260

原创 Nodejs定时任务Node Schedule

https://www.npmjs.com/package/node-schedule

2019-11-15 13:34:29 407

原创 setTimeout与resolve、setImmediate比较

//setTimeout是在下一轮“事件循环”的开始时setTimeout(function () { console.log('three');}, 0);//立即resolve()的 Promise 对象,是在本轮“事件循环”(event loop)的结束时执行Promise.resolve().then(function () { console.log('two...

2019-11-15 13:29:51 536

原创 基于await 实现sleep函数

function sleep(interval) { return new Promise(resolve => { setTimeout(resolve, interval); })}async function oneAsync() { await sleep(1000); console.log(1)}oneAsync();...

2019-11-15 13:26:31 2208

原创 卸载mysql

1查找之前老版本mysql的目录、并且删除find / -name mysql/var/lib/mysql/var/lib/mysql/mysql/usr/lib64/mysql 2删除对应的mysql目录rm -rf /var/lib/mysqlrm -rf /var/lib/mysqlrm -rf /usr/lib64/mysql3卸载后/etc/my....

2019-11-05 13:38:02 107

原创 CentOS 7镜像下载

1 CentOS 7镜像下载官网地址 http://isoredirect.centos.org/centos/7.4.1708/isos/x86_64/2 阿里云站点下载http://mirrors.aliyun.com/centos/CentOS-7-x86_64-DVD-1708.iso 标准安装版,一般下载这个就可以了(推荐)CentOS-7-x86_64...

2019-10-31 17:45:05 3620

原创 Lunix关闭开启防火墙

1:查看防火状态systemctl status firewalldservice iptables status2:暂时关闭防火墙systemctl stop firewalldservice iptables stop3:永久关闭防火墙systemctl disable firewalldchkconfig iptables off4:重启防火墙s...

2019-10-29 16:40:49 834

原创 kafka安装

1 安装java环境https://blog.csdn.net/qq_25652213/article/details/899231272 下载安装kafkahttp://kafka.apachecn.org/quickstart.html3 kafka客户端kafkatool下载http://www.kafkatool.com/download.html使用教程:ht...

2019-10-28 19:03:10 91

原创 ssh Scecure Shell解决客户端乱码

1 locale -a 查询系统支持的字符集2输入export LANG=zh_CN.gbk设定字符集3若要永久生效,则需要到/etc/locale.conf 下将文件内容修改LANG="zh_CN.gbk"最后执行source /etc/locale.conf 即可永久生效...

2019-10-28 16:22:25 348

原创 lunix 安装mysql5.5.62

1 下载mysql 安装包https://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.62-linux-glibc2.12-x86_64.tar.gz2解压安装包 tar -zxvf mysql-5.5.60-linux-glibc2.12-x86_64.tar.gz3 将msyql移动到 /user/local底下并...

2019-10-28 00:21:38 393

原创 node mysql orm框架 Sequelize

https://github.com/sequelize/sequelizehttps://github.com/demopark/sequelize-docs-Zh-CNhttps://sequelize.org/master/manual/getting-started.htmlhttps://www.npmjs.com/package/mysql-model-ormhttps...

2019-10-15 16:18:17 702

原创 js 数字格式化库

decimal.js提供十进制类型的任意精度数值官网:http://mikemcl.github.io/decimal.js/GitHub:https://github.com/MikeMcl/decimal.jsbig.js一个小型,快速,易于使用的库,用于任意精度的十进制算术官网:http://mikemcl.github.io/big.jsGitHub:https://git...

2019-08-27 18:33:44 1708

原创 window下webstorm使用bable-node启动工程

如果出现 `v8debug is not defined` 请不要忽略 Node parameters: --expose_debug_as=v8debug -- //不要忽略后面的两个 --Application parameters: 这个是项目中的参数, 使用`process.argv`获取。 Environment variables: 环境变量相关, 比如: `N...

2019-08-27 14:18:25 150

原创 node MD5加密

const crypto = require('crypto');class MD5 { //随机盐值 getRandomSalt() { return Math.random().toString().slice(2, 6); } //md5加密数据 cryptPwd(password, salt) { // 密码加盐...

2019-08-23 18:06:30 624

原创 小程序复制内容到剪切板

//复制数据到系统剪贴板wx.setClipboardData({ data: 'data', success (res) { wx.getClipboardData({ success (res) { console.log(res.data) // data 剪贴板的内容 } ...

2019-08-23 17:56:49 1473

原创 js 扩展对象以及对象下的方法

//扩展对象以及对象下的方法const extend = (...arguments) => { let obj = {}; //Array.prototype.slice.call(arguments) 将类数组转化为真正的数组 //Array.from()方法或扩展运算符将参数转换为真实数组:Array.from(arguments); [].slic...

2019-08-22 17:12:29 471

原创 小程序判断手机机型

try { const res = wx.getSystemInfoSync() //判断是否为iphonex console.log(res.model.includes("iPhone X"))} catch (e) { // Do something when catch error}

2019-08-21 11:11:28 3857

原创 nodejs 处理图像模块

2 Node.js轻量级跨平台图像编解码库imagesnpm 地址https://www.npmjs.com/package/node-imagesvar images = require("images"); images("input.jpg") //Load image from file ...

2019-08-21 10:09:44 4268

原创 常用正则表达式

一、校验数字的表达式数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数字:^\d{m,n}$ 零和非零开头的数字:^(0|[1-9][0-9]*)$ 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(\.[0-9]{1,2})?$ 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})$ 正数、负数、和小...

2019-08-20 19:33:21 145

webstorm2019hhb.zip汉化包

打开webstorm安装路径,打开lib文件,将resources_cn.jar文件拷贝到lib文件路径下,重启webstorm即可

2019-07-19

空空如也

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

TA关注的人

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