自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 系统,docker,redis,k8s 常用维护指令

系统性能常用指令cpu & mem & disk & io常用问题排查工具topM:shift+m 按内存排序T:shift+t 按cpu排序l :按平均负载排序iotopo:切换至only选项,只显示正在产生IO的进程或线程。p:切换至processess选项,只显示进程,不显示线程。a:切换至accumulated选项,显示从iotop启动后的每个进程累计IO总数,便于持续诊断IO问题。psps -aux | grep xxx : 检查某

2021-10-13 18:12:01 184

原创 Redis 消息队列

一、消息队列消息队列的基本需求消息保序:消息的产生与消费有先后顺序,消息队列需保证消费的有序性。重复消息处理:生产者可能会发送重复消息,需保证消费的幂等性。消息可靠性保证:消息不能丢失,消费失败后,需保证有机制可以重新消费。消息队列可靠性的保证生产者丢数据消费者丢数据消息队列自身丢数据二、基于list的消息队列Redis 的sub/pub机制,可以实现部分的消息队列机制,但遇到网络连接中断,数据库宕机等情况,数据易丢失无法重复消费。基于list的消费队列可以简单的实现消费队列的部

2021-10-12 13:53:29 255

原创 Redis AOF & RDB日志

AOF 日志是怎样实现的?1、aof介绍Redis作为内存数据库,数据都存储在内存中,如果遇见宕机情况,没有持久化机制,数据肯定是会丢失的,为了实现数据库在宕机之后可以恢复,redis提供了aof(append only file)和rdb(内存快照)两种日志记录方式。aof 通过将指令写入文件方式实现持久化,不同于普通数据库的“写前日志”(WAL),aof 采用的是“写后日志”,即先执行指令,然后再把执行成功的指令写入文件,这样就可避免写入文件前的指令校验过程(已经执行成功的指令必然是不需要再校验的)

2021-09-11 17:06:23 525

原创 Redis数据结构

Redis的五种基础数据类型&对应的底层数据结构Redis key 数据结构1、key 是用什么数据结构存储的?Redis采用哈希表来存储所有的键值对,在redis的全局哈希表中,每个哈希桶保存了对应的键值对数据,每个桶中的entry元素实际上保存了key和value指针,分别指向了对应的键和值,键的类型为String,而value则对应多种不同的数据结构。2、hash 冲突是怎样解决的?使用hash存储键值对不可避免会产生哈希冲突,也就是当两个不同的key经过计算后落到了同一个哈希桶

2021-09-10 15:06:03 143

原创 git flow 工作流

Git flow 工作流介绍Git Flow 工作流是一个非常成熟的方案,也是非开源项目中最常用到的工作流。它定义了一个围绕项目发布的严格分支模型,通过为代码开发、发布和维护分配独立的分支来让项目的迭代流程更加顺畅,比较适合大型的项目或者迭代速度快的项目。Git Flow 中定义了 5 种分支,分别是 master、develop、feature、release 和 hotfix。其中,master 和 develop 为常驻分支,其他为非常驻分支,不同的研发阶段会用到不同的分支。这 5 种分支的详细介

2021-09-09 15:15:34 834

原创 Redis之HyperLogLog

一、数据结构实质字符串,基于基数算法,利用极小的内存空间完成独立总数的统计。二、常用指令三个1、pfadd key element[element...]pfadd user:view:20200822 "uuid1" "uuid2" "uuid3"2、pfcount key [key...]pfcount user:view:202008223、pfmerge destkey sourcekey[sourcekey...]pfmerge user:view:20200822_2020082

2020-08-28 15:43:38 102

原创 Redis之Bitmaps

Bitmaps数据结构模型本质上就是字符串,但是可以对字符串的位进行操作。可以看做是一个以位为单位的数组,数组每个单元的值只能是0和1,数组的下表在bitmaps 中叫做偏移量。Bitmaps常用指令1、设置值setbit key offset value set user:view:2020-08-22 10 1 // 设置用户id:10 在2020-08-22当天的访问标记为12、获取值getbit key offset get user:view:2020-08-22 10

2020-08-28 14:49:01 165

原创 虚拟机Debian10 使用minikube安装k8s测试环境

安装docker安装kubectl# 获取kubectl资源curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/v1.6.4/bin/linux/amd64/kubectl# 设置可执行chmod +x kubectl# 移动到/bin 执行目录mv kubectl /usr/local/bin/# source filesource /etc/profile# 检测安装成功kubectl

2020-06-13 16:55:19 708

原创 VSCode 墙内安装Golang 开发插件失败解决方法

VSCode 墙内安装Golang 开发插件失败解决方法首先,网上好多说设置$GOPATH 下安装golang.org/x/ 什么之类方法根本不行。。。亲试解决方法:golang 有一个全球代理,只需要设置修改go env GOPROXY 参数值就好了。win + r 输入powershell , 然后依次输入以下指令:$env:GO111MODULE="on"$env:GOPROXY="https://goproxy.io"go env -w GOPROXY=https://goproxy

2020-06-11 14:29:47 848

原创 MySQL数据类型及优化

数据类型整数类型存储类型:TINTINT,SMALLINT,MEDIUMINT,INT,BIGINT,分别使用8,16,24,32,64 位存储空间。表示范围大小从-2^(N-1)到2^(N-1)-1,N为存储空间的位数。 UNSIGNED可使数据为正数,正数范围翻倍,即0到2^(N)-1。TINTINT(-128-127) TINTINT UNSIGNED(0-255) IN...

2018-08-25 21:18:30 545

原创 Shell基础(六):位置参数及case分支

位置参数标记$0:脚本文件绝对路劲$1-9:小于10位置参数标记${10..}:大于10的位置参数标记$#:参数总数$*:展开成一个从 1 开始的位置参数列表。当它被用双引号引 起来的时候,展开成一个由双引号引起来的字符串,包含了 所有的位置参数,每个位置参数由 shell 变量 IFS 的第一个 字符(默认为一个空格)分隔开。$@:展开成一个从 1 开始的位置...

2018-08-17 17:19:33 433

原创 Shell基础(五):while/until/for 循环

While 循环用法while commands; do commands; done举例while [ $count -le 5 ]; doecho $countcount=$((count + 1))doneecho "Finished."Until 循环异同:until 命令与 while 非常相似,除了当遇到一个非零退出状态的时候,while...

2018-08-14 20:16:49 218

原创 Shell基础(四):读取键盘输入

读取键盘输入READ 命令read 命令基本用法#! /bin/bash# 读取多个输入echo "Enter some values>"read value1 value2 value3 echo "value1 : $value1"echo "value2 : $value2"echo "value3 : $value3&

2018-08-11 17:59:25 5294

原创 Shell基础(三):变量及if 分支

变量赋值:赋值过程中,变量名,等号,变量值之间必须没有空格。变量值由可以展开成字符串的任意值。a=z # Assign the string "z" to variable a.b="a string" # Embedded spaces must be within quotes.c="a str

2018-08-11 16:16:38 488

原创 Shell基础(二):正则表达式

grepls /usr/bin | grep zipcat text.txt | grep hello -ab10重要参数-i 匹配忽略大小写-v 取反,即筛选不匹配-c 打印匹配的数量元字符:元字符使用时要用单引号括起来防止参数展开^ $ . [ ] { } - ? * + ( ) | \任何字符:.grep '.zip' /usr/bin /...

2018-08-11 14:55:24 195

原创 Shell基础(一):展开

shell基础(一):展开路径名展开 ls echo * echo doc* echo /usr/*/share波浪线展开 echo ~ 展开用户家目录算术表达式展开 $((expression)) echo $((1*2)) $((2**5)*6)花括号展开:多用于批量创建文件 echo {A,B,C}...

2018-08-10 20:31:55 243

原创 MySQL基础

Mysql 逻辑架构并发控制读写锁: 读锁(共享锁):读锁时共享的,不互相阻塞的,多个用户可以在同一时刻同时读取同一个资源,而互不干扰。 写锁(排它锁):写锁是排它的,一个写锁会阻塞其他写锁和读锁,保证在给定时间内只能有一个用户写入,并防止其他用户读取正在写入的同一资源。锁粒度: 表锁:mysql最基本的锁策略,开销最小的策略。即锁定整张表,写...

2018-07-28 15:08:58 153

原创 linux I/O重定向

标准输入,标准输出,标准错误重定向标准输出 ls -l /usr/bin > test.txt  //标准输出至文件test.txt,写之前先清空文件。 ls -l /usr/bin >> test.txt //追加写入至文件。

2018-07-26 23:56:16 301

原创 linux 硬链接和符号链接

硬链接:       硬链接和符号链接比起来,硬链接是最初 Unix 创建链接的方式,而符号链接更加现代。在默认情况下,每个文件都有一个硬链接,这个硬链接给文件起名字。当我们创建一个硬链接以后,就为文件创建了一个额外的目录条目。硬链接有两个重要局限性:1. 一个硬链接不能关联它所在文件系统之外的文件。这是说一个链接不能关联与链接本身不在同一个磁盘分区上的文件。2. 一个硬链接不能关联一个...

2018-07-25 15:44:42 1561

原创 集合

'use strict'const md5 = require('blueimp-md5');class Set { constructor() { this.items = {} } has(value) { return this.items.hasOwnProperty(md5(JSON.stringify(value)));...

2018-07-04 10:55:16 196

原创 归并排序

JS 算法导论版'use strict';function mergeSort(array,start,end){ if(start<end){ let middle=Math.floor((start+end)/2); mergeSort(array,start,middle); mergeSort(array,middle+1,...

2018-05-28 22:13:20 122

原创 插入排序

原理:插人排序每次排一个数组项,以此方式构建最后的排序数组。假定第一项已经排序了,接着, 它和第二项进行比较,第二项是应该待在原位还是插到第一项之前呢?这样,头两项就已正确排 序,接着和第三项比较(它是该插人到第一、第二还是第三的位置呢?),以此类推。图解: JS'use strict'function insertSort(array){ //console.log(array);...

2018-05-27 18:24:26 191

原创 冒泡排序

原理:冒泡排序比较任何两个相邻的项,如果第一个比第二个大,则交换它们。元素项向上移动至 正确的顺序,就好像气泡升至表面一样,冒泡排序因此得名。图解:JS实现:'use strict';function bubbleSort(array){ for(let i=0;i<array.length;i++){ // 每次外部循环结束后,最末位置array.length-...

2018-05-26 19:20:09 168

原创 选择排序

原理:在每次循环遍历中找到最小的数字放到相应的位置,第一次找所有数中最小的数,放在第一个位置,第二次找剩下的数中最小的数放在第二个位置,以此类推,直到遍历完所有的数.图解:JS版本实现:'use strict';function selectionSort(array){ if(!(array instanceof Array)){ return 'need Array...

2018-05-26 19:08:19 150

转载 tcp/ip协议

转载https://juejin.im/post/5a069b6d51882509e5432656

2018-05-26 17:23:30 141

转载 JS事件循环

一、JS 单线程执行二、定时器函数详解        1、setTimeout()接受两个参数,第一个是回调函数,第二个是推迟执行的毫秒数。        setTimeout(fn,0)的含义是,指定某个任务在主线程最早可得的空闲时间执行,也就是说,尽可能早得执行。它在"任务队列"的尾部添加一个事件,因此要等到同步任务和"任务队列"现有的事件都处理完,才会得到执行。        2、setIn...

2018-05-24 18:38:59 1794

原创 NodeJS--Buffer笔记

1、Buffer对象buffer对象每个元素的值为16进制数(0-255之间),utf-8格式string转buffer对象时,汉字占3位,字母,符号占1位。给buffer通过下标赋值为value,value大于255时会取value%256作为结果,小于0会追加256,直到值为0-255之间,有小数则会直接截断小数部分,然后取0-255之间整数值。2、安全性3、buffer内存分配buffer对...

2018-05-22 14:53:15 443

原创 Node(V8)垃圾回收机制

2018-05-18 14:12:29 469

原创 浅谈nodejs中的Crypto模块

浅谈nodejs中的Crypto模块 原文地址:https://cnodejs.org/topic/504061d7fef591855112bab5+Node.js的加密模块crypto之使用Decipher类解密数据2015年07月20日 407 声明前文件介绍了Node.js的crypto模块中Cip...

2017-07-28 18:02:00 138

原创 lodash中extend,assign,merge的异同

lodash中extend,assign,merge的异同 assign({},{ a: 1 },{ b: { c: 2, d: 3} },{ b: { e: 4 } })// { a: 1, b: { e: 4 } }merge({},{ a: 1 },{ b: { c: 2, d: 3} },{ b: { e: 4...

2017-07-28 16:52:00 544

原创 node.js/XLSX介绍

node.js/XLSX介绍 https://segmentfault.com/a/1190000004395728\http://www.cnblogs.com/sam976/p/5762285.html posted @ 2017-07-24 15:22 General_up 阅读(...

2017-07-24 15:22:00 210

原创 session和cookies

session和cookies 原文地址:http://wiki.jikexueyuan.com/project/node-lessons/cookie-session.htmlcookie 和 session众所周知,HTTP 是一个无状态协议,所以客户端每次发出请求时,下一次请求无法得知上一次请求所包含的状态数据,如何能把一个用户的状态数据...

2017-07-03 17:15:00 83

原创 bodyparser中间件

bodyparser中间件 原文地址:https://segmentfault.com/a/1190000004407008BODYPARSER中间件的研究接触nodejs已有一段时间了,但最近才开始落实项目,于是使用express应用生成器生成了一个应用。开发过程中发现ajax提交的数据无法被express正确的解析,主要的情况是这样的:/...

2017-07-03 17:01:00 106

原创 validator

validator 原网址:https://www.npmjs.com/package/validator#server-side-usageA library of string validators and sanitizers.Server-side usageInstall the library withnpm install v...

2017-07-03 12:08:00 292

原创 多路I/O转接服务器模型一(select)

多路I/O转接服务器模型一(select) 1.select能监听的文件描述符个数受限于FD_SETSIZE,一般为1024,单纯改变进程打开的文件描述符个数并不能改变select监听文件个数2.解决1024以下客户端时使用select是很合适的,但如果链接客户端过多,select采用的是轮询模型,会大大降低服务器响应效率,不应在select上投入...

2016-05-02 23:43:00 265

原创 多进程服务器Demo

多进程服务器Demo   今天实现的这个服务器程序加入了对多个客户端同时请求处理的实现,服务器端通过对每次监听到的客户端程序新建一个子进程,进行相关的处理,将从客户端传来的字符串数据,转化为大写的字符串序列,然重新写回到connfd;另一方面,客户端通过在标准输入里获取客户输入到的字符串序列,传送到connfd,再从connfd读取经服务器处理过的...

2016-04-30 23:25:00 80

原创 socket编程server端

socket编程server端 1 #include<stdlib.h> 2 #include<string.h> 3 #include<stdio.h> 4 #include<sys/socket.h> 5 #include<arpa/inet.h&gt...

2016-04-28 23:59:00 83

原创 二叉树的镜像

二叉树的镜像 题目:请完成一个函数,输入一个二叉树,该函数输出它的镜像 1 #include<iostream> 2 using namespace std; 3 struct BinaryTreeNode{ 4 int value; 5 BinaryTreeNode* p_Left; 6...

2016-04-26 22:39:00 79

原创 两个有序链表的合并

两个有序链表的合并 题目:输入俩个递增排序的链表,合并这两个链表,使合并后的链表任然是有序的。struct ListNode{  int value;  ListNode* next;};利用递归实现的代码如下: 1 //输入两个递增序列的链表,合并这两个链表要求输出后的链表仍然按照递增序列排序 2 #inclu...

2016-04-26 00:30:00 135

原创 在O(1)的时间内删除链表的指定结点

在O(1)的时间内删除链表的指定结点 题目:给定单项链表的头指针和一个结点指针,定义一个函数在o(1)的时间删除该结点,链表的定义如下:struct ListNode{  int value;  ListNode* next;};函数定义:void DeleteNode(ListNode** PListHead,ListNode* ...

2016-04-25 00:36:00 85

空空如也

空空如也

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

TA关注的人

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