<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[YL_max的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/YL_max</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; YL_max]]></copyright><item><title><![CDATA[系统，docker，redis，k8s 常用维护指令]]></title><link>https://blog.youkuaiyun.com/YL_max/article/details/120749470</link><guid>https://blog.youkuaiyun.com/YL_max/article/details/120749470</guid><author>YL_max</author><pubDate>Wed, 13 Oct 2021 18:12:01 +0800</pubDate><description><![CDATA[系统性能常用指令
cpu &amp; mem &amp; disk &amp; io
常用问题排查工具

top

M：shift+m 按内存排序
T：shift+t 按cpu排序
l ：按平均负载排序


iotop

o：切换至only选项，只显示正在产生IO的进程或线程。
p：切换至processess选项，只显示进程，不显示线程。
a：切换至accumulated选项，显示从iotop启动后的每个进程累计IO总数，便于持续诊断IO问题。


ps

ps -aux  | grep xxx ： 检查某]]></description><category></category></item><item><title><![CDATA[Redis 消息队列]]></title><link>https://blog.youkuaiyun.com/YL_max/article/details/120722045</link><guid>https://blog.youkuaiyun.com/YL_max/article/details/120722045</guid><author>YL_max</author><pubDate>Tue, 12 Oct 2021 13:53:29 +0800</pubDate><description><![CDATA[一、消息队列
消息队列的基本需求

消息保序：消息的产生与消费有先后顺序，消息队列需保证消费的有序性。
重复消息处理：生产者可能会发送重复消息，需保证消费的幂等性。
消息可靠性保证：消息不能丢失，消费失败后，需保证有机制可以重新消费。

消息队列可靠性的保证

生产者丢数据
消费者丢数据
消息队列自身丢数据

二、基于list的消息队列
Redis 的sub/pub机制，可以实现部分的消息队列机制，但遇到网络连接中断，数据库宕机等情况，数据易丢失无法重复消费。基于list的消费队列可以简单的实现消费队列的部]]></description><category></category></item><item><title><![CDATA[Redis AOF & RDB日志]]></title><link>https://blog.youkuaiyun.com/YL_max/article/details/120238022</link><guid>https://blog.youkuaiyun.com/YL_max/article/details/120238022</guid><author>YL_max</author><pubDate>Sat, 11 Sep 2021 17:06:23 +0800</pubDate><description><![CDATA[AOF 日志是怎样实现的？
1、aof介绍
Redis作为内存数据库，数据都存储在内存中，如果遇见宕机情况，没有持久化机制，数据肯定是会丢失的，为了实现数据库在宕机之后可以恢复，redis提供了aof（append only file）和rdb（内存快照）两种日志记录方式。aof 通过将指令写入文件方式实现持久化，不同于普通数据库的“写前日志”（WAL）,aof 采用的是“写后日志”，即先执行指令，然后再把执行成功的指令写入文件，这样就可避免写入文件前的指令校验过程（已经执行成功的指令必然是不需要再校验的）]]></description><category></category></item><item><title><![CDATA[Redis数据结构]]></title><link>https://blog.youkuaiyun.com/YL_max/article/details/120221526</link><guid>https://blog.youkuaiyun.com/YL_max/article/details/120221526</guid><author>YL_max</author><pubDate>Fri, 10 Sep 2021 15:06:03 +0800</pubDate><description><![CDATA[Redis的五种基础数据类型&amp;对应的底层数据结构

Redis key 数据结构
1、key 是用什么数据结构存储的？
Redis采用哈希表来存储所有的键值对，在redis的全局哈希表中，每个哈希桶保存了对应的键值对数据，每个桶中的entry元素实际上保存了key和value指针，分别指向了对应的键和值，键的类型为String,而value则对应多种不同的数据结构。

2、hash 冲突是怎样解决的？
使用hash存储键值对不可避免会产生哈希冲突，也就是当两个不同的key经过计算后落到了同一个哈希桶]]></description><category></category></item><item><title><![CDATA[git flow 工作流]]></title><link>https://blog.youkuaiyun.com/YL_max/article/details/120198549</link><guid>https://blog.youkuaiyun.com/YL_max/article/details/120198549</guid><author>YL_max</author><pubDate>Thu, 09 Sep 2021 15:15:34 +0800</pubDate><description><![CDATA[Git flow 工作流介绍
Git Flow 工作流是一个非常成熟的方案，也是非开源项目中最常用到的工作流。它定义了一个围绕项目发布的严格分支模型，通过为代码开发、发布和维护分配独立的分支来让项目的迭代流程更加顺畅，比较适合大型的项目或者迭代速度快的项目。
Git Flow 中定义了 5 种分支，分别是 master、develop、feature、release 和 hotfix。其中，master 和 develop 为常驻分支，其他为非常驻分支，不同的研发阶段会用到不同的分支。这 5 种分支的详细介]]></description><category></category></item><item><title><![CDATA[Redis之HyperLogLog]]></title><link>https://blog.youkuaiyun.com/YL_max/article/details/108280403</link><guid>https://blog.youkuaiyun.com/YL_max/article/details/108280403</guid><author>YL_max</author><pubDate>Fri, 28 Aug 2020 15:43:38 +0800</pubDate><description><![CDATA[一、数据结构
实质字符串，基于基数算法，利用极小的内存空间完成独立总数的统计。
二、常用指令三个
1、pfadd key element[element...]
pfadd user:view:20200822 "uuid1" "uuid2" "uuid3"
2、pfcount key [key...]
pfcount user:view:20200822
3、pfmerge destkey sourcekey[sourcekey...]
pfmerge user:view:20200822_2020082]]></description><category></category></item><item><title><![CDATA[Redis之Bitmaps]]></title><link>https://blog.youkuaiyun.com/YL_max/article/details/108278848</link><guid>https://blog.youkuaiyun.com/YL_max/article/details/108278848</guid><author>YL_max</author><pubDate>Fri, 28 Aug 2020 14:49:01 +0800</pubDate><description><![CDATA[Bitmaps数据结构模型
本质上就是字符串，但是可以对字符串的位进行操作。可以看做是一个以位为单位的数组，数组每个单元的值只能是0和1，数组的下表在bitmaps 中叫做偏移量。

Bitmaps常用指令
1、设置值
setbit key offset value  
set user:view:2020-08-22 10 1  // 设置用户id：10 在2020-08-22当天的访问标记为1

2、获取值
getbit key offset  
get user:view:2020-08-22 10 ]]></description><category></category></item><item><title><![CDATA[虚拟机Debian10 使用minikube安装k8s测试环境]]></title><link>https://blog.youkuaiyun.com/YL_max/article/details/106733641</link><guid>https://blog.youkuaiyun.com/YL_max/article/details/106733641</guid><author>YL_max</author><pubDate>Sat, 13 Jun 2020 16:55:19 +0800</pubDate><description><![CDATA[安装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 file
source /etc/profile
# 检测安装成功
kubectl]]></description><category></category></item><item><title><![CDATA[VSCode 墙内安装Golang 开发插件失败解决方法]]></title><link>https://blog.youkuaiyun.com/YL_max/article/details/106688082</link><guid>https://blog.youkuaiyun.com/YL_max/article/details/106688082</guid><author>YL_max</author><pubDate>Thu, 11 Jun 2020 14:29:47 +0800</pubDate><description><![CDATA[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]]></description><category></category></item><item><title><![CDATA[MySQL数据类型及优化]]></title><link>https://blog.youkuaiyun.com/YL_max/article/details/82055430</link><guid>https://blog.youkuaiyun.com/YL_max/article/details/82055430</guid><author>YL_max</author><pubDate>Sat, 25 Aug 2018 21:18:30 +0800</pubDate><description><![CDATA[数据类型

整数类型



存储类型：

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...]]></description><category></category></item><item><title><![CDATA[Shell基础(六)：位置参数及case分支]]></title><link>https://blog.youkuaiyun.com/YL_max/article/details/81780751</link><guid>https://blog.youkuaiyun.com/YL_max/article/details/81780751</guid><author>YL_max</author><pubDate>Fri, 17 Aug 2018 17:19:33 +0800</pubDate><description><![CDATA[位置参数

标记

$0:脚本文件绝对路劲
$1-9:小于10位置参数标记
${10..}:大于10的位置参数标记
$#:参数总数
$*:展开成一个从 1 开始的位置参数列表。当它被用双引号引
   起来的时候,展开成一个由双引号引起来的字符串,包含了
   所有的位置参数,每个位置参数由 shell 变量 IFS 的第一个
   字符(默认为一个空格)分隔开。
$@:展开成一个从 1 开始的位置...]]></description><category></category></item><item><title><![CDATA[Shell基础(五)：while/until/for 循环]]></title><link>https://blog.youkuaiyun.com/YL_max/article/details/81673675</link><guid>https://blog.youkuaiyun.com/YL_max/article/details/81673675</guid><author>YL_max</author><pubDate>Tue, 14 Aug 2018 20:16:49 +0800</pubDate><description><![CDATA[While 循环

用法



while commands; do commands; done

举例



while [ $count -le 5 ]; do
echo $count
count=$((count + 1))
done
echo &quot;Finished.&quot;

Until 循环



异同:

until 命令与 while 非常相似,除了当遇到一个非零退出状态的时候,while...]]></description><category></category></item><item><title><![CDATA[Shell基础(四)：读取键盘输入]]></title><link>https://blog.youkuaiyun.com/YL_max/article/details/81589245</link><guid>https://blog.youkuaiyun.com/YL_max/article/details/81589245</guid><author>YL_max</author><pubDate>Sat, 11 Aug 2018 17:59:25 +0800</pubDate><description><![CDATA[读取键盘输入



READ 命令

read 命令基本用法

#! /bin/bash
# 读取多个输入
echo &amp;quot;Enter some values&amp;amp;gt;&amp;quot;
read value1 value2 value3 
echo &amp;quot;value1 : $value1&amp;quot;
echo &amp;quot;value2 : $value2&amp;quot;
echo &amp;quot;value3 : $value3&amp;]]></description><category></category></item><item><title><![CDATA[Shell基础(三)：变量及if 分支]]></title><link>https://blog.youkuaiyun.com/YL_max/article/details/81587518</link><guid>https://blog.youkuaiyun.com/YL_max/article/details/81587518</guid><author>YL_max</author><pubDate>Sat, 11 Aug 2018 16:16:38 +0800</pubDate><description><![CDATA[变量

赋值：赋值过程中，变量名，等号，变量值之间必须没有空格。变量值由可以展开成字符串的任意值。

a=z                       # Assign the string &amp;amp;quot;z&amp;amp;quot; to variable a.
b=&amp;amp;quot;a string&amp;amp;quot;              # Embedded spaces must be within quotes.
c=&amp;amp;quot;a str]]></description><category></category></item><item><title><![CDATA[Shell基础(二)：正则表达式]]></title><link>https://blog.youkuaiyun.com/YL_max/article/details/81586739</link><guid>https://blog.youkuaiyun.com/YL_max/article/details/81586739</guid><author>YL_max</author><pubDate>Sat, 11 Aug 2018 14:55:24 +0800</pubDate><description><![CDATA[grep

ls /usr/bin | grep zip
cat text.txt | grep hello -ab10




重要参数

-i 匹配忽略大小写
-v 取反，即筛选不匹配
-c 打印匹配的数量




元字符:元字符使用时要用单引号括起来防止参数展开

^ $ . [ ] { } - ? * + ( ) | \




任何字符：.

grep '.zip' /usr/bin /...]]></description><category></category></item><item><title><![CDATA[Shell基础(一)：展开]]></title><link>https://blog.youkuaiyun.com/YL_max/article/details/81569569</link><guid>https://blog.youkuaiyun.com/YL_max/article/details/81569569</guid><author>YL_max</author><pubDate>Fri, 10 Aug 2018 20:31:55 +0800</pubDate><description><![CDATA[shell基础(一)：展开

路径名展开

    ls
    echo *
    echo doc*
    echo /usr/*/share


波浪线展开

    echo ~ 展开用户家目录


算术表达式展开

    $((expression))
    echo $((1*2)) $((2**5)*6)


花括号展开:多用于批量创建文件

    echo {A,B,C}...]]></description><category></category></item><item><title><![CDATA[MySQL基础]]></title><link>https://blog.youkuaiyun.com/YL_max/article/details/81260714</link><guid>https://blog.youkuaiyun.com/YL_max/article/details/81260714</guid><author>YL_max</author><pubDate>Sat, 28 Jul 2018 15:08:58 +0800</pubDate><description><![CDATA[Mysql 逻辑架构





并发控制



读写锁：

    读锁（共享锁）：读锁时共享的，不互相阻塞的，多个用户可以在同一时刻同时读取同一个资源，而互不干扰。
    写锁（排它锁）：写锁是排它的，一个写锁会阻塞其他写锁和读锁，保证在给定时间内只能有一个用户写入，并防止其他用户读取正在写入的同一资源。


锁粒度：

    表锁：mysql最基本的锁策略，开销最小的策略。即锁定整张表，写...]]></description><category></category></item><item><title><![CDATA[linux I/O重定向]]></title><link>https://blog.youkuaiyun.com/YL_max/article/details/81227814</link><guid>https://blog.youkuaiyun.com/YL_max/article/details/81227814</guid><author>YL_max</author><pubDate>Thu, 26 Jul 2018 23:56:16 +0800</pubDate><description><![CDATA[标准输入，标准输出，标准错误

重定向标准输出

    ls -l /usr/bin &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt; test.txt 　//标准输出至文件test.txt,写之前先清空文件。

    ls -l /usr/bin &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt; test.txt  //追加写入至文件。]]></description><category></category></item><item><title><![CDATA[linux 硬链接和符号链接]]></title><link>https://blog.youkuaiyun.com/YL_max/article/details/81204056</link><guid>https://blog.youkuaiyun.com/YL_max/article/details/81204056</guid><author>YL_max</author><pubDate>Wed, 25 Jul 2018 15:44:42 +0800</pubDate><description><![CDATA[硬链接：

       硬链接和符号链接比起来,硬链接是最初 Unix 创建链接的方式,而符号链接更加现代。在默认情况下,每个文件都有一个硬链接,这个硬链接给文件起名字。当我们创建一个硬链接以后,就为文件创建了一个额外的目录条目。硬链接有两个重要局限性:

1. 一个硬链接不能关联它所在文件系统之外的文件。这是说一个链接不能关联与链接本身不在同一个磁盘分区上的文件。
2. 一个硬链接不能关联一个...]]></description><category></category></item><item><title><![CDATA[集合]]></title><link>https://blog.youkuaiyun.com/YL_max/article/details/80909130</link><guid>https://blog.youkuaiyun.com/YL_max/article/details/80909130</guid><author>YL_max</author><pubDate>Wed, 04 Jul 2018 10:55:16 +0800</pubDate><description><![CDATA['use strict'

const md5 = require('blueimp-md5');

class Set {
    constructor() {
        this.items = {}
    }

    has(value) {
        return this.items.hasOwnProperty(md5(JSON.stringify(value)));...]]></description><category></category></item></channel></rss>