自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

伊始的博客

时光流逝 岁月静好

原创 闲来无事

突然想说、喜欢安姐、????、优秀的那么自然、还有那么许多一直优秀的人、读读你们的故事、思考下自己的人生、是啊、对错并不重要、关键是成长和思考希望所有人都能按照自己的意愿过一生------- 杂谈 -------最近在看了些电视剧、射雕英雄传、很多自己喜欢的角色、可能每个人都不完美、但刻画的是那么的真实黄蓉 机敏、博学、善良、调皮、黄小邪 哈哈哈~、总是特别的机智郭靖 老实、有点儿木讷、小事听...

2019-09-08 15:29:54 99

原创 多级缓存

多级缓存基本概念如何缓存数据分布式缓存与应用负载均衡热点数据与更新缓存缓存崩溃与快速修复基本概念1. 什么是多级缓存 是指在整个系统架构的不同系统层级进行数据缓存、以提高访问效率 一般会使用nginx本地缓存解决热点缓存问题 使用分布式缓存减少访问回源率 使用tomcat堆缓存用于防止缓存失效/崩溃之后的冲击如何缓存数据1. 过期与不过期 ...

2018-10-03 20:33:57 635

原创 应用缓存

应用级别的缓存基本概念回收策略java缓存类型多级缓存基本概念缓存命中率:从缓存查到的次数 / 查询总次数(缓存查询次数+快慢设备中读取的次数)SOR:system of record记录系统、或者可以叫数据源、即实际存储原始数据的系统Cache:缓存、是SOR的快照数据、cache的访问速度比SOR要快、放入cache的目的是提升访问速度、减少回源到SOR的频次回源:c...

2018-10-03 20:33:10 275

原创 http缓存

http缓存缓存参数说明缓存头小记缓存参数说明 last-modified: 表示文档的最后修改时间、当去服务器验证时会用到这个时间 expires: http/1.0 规范定义、表示文档在浏览器的中的过期时间、当缓存内容时间超过这个时间、需要重新去服务器获取最新的内容 cache-control:http/1.1定义、表示浏览器缓存控制、max-age=20表示文档可以在浏览...

2018-10-03 20:32:43 134

原创 站点隔离

隔离相关线程隔离进程隔离集群隔离机房隔离读写隔离动静隔离爬虫隔离热点隔离资源隔离隔离是指将系统或者资源区分开、是为了在系统发生故障时、限定传播的范围、或者减少资源竞争或者保证服务间不相互影响线程隔离主要是指线程池隔离、在实际使用时、会把请求分类、然后交给不同的线程池处理、当一种业务出现问题时、不会讲故障扩散进程隔离一般是随业务发展、从0到1 的过程、不会开...

2018-10-03 20:31:40 199

原创 队列

队列解决什么问题常见场景解决什么问题很多场景下、我们没必要保证强一致性、只需要保证最终一致性即可、eg. 不用所有的结果都实时反馈给用户、不是所有的请求都必须一次性处理成功、不用所有的依赖方都处理完毕此时、可以考虑使用消息队列但要保证消息处理的有序性、及重复消费的幂等性、常见场景1. 异步处理: 使用队列的一个主要原因是异步处理、 eg. 在用户...

2018-10-03 20:31:09 96

原创 如何扩容

如何扩容概述单体应用扩容应用拆分数据库拆分数据库分库分表数据异构概述1. 对发展初期的系统来说、不太确定商业模型是否可行、最好的办法是按照最小可行产品方法进行验证、刚开始功能可能比较少、是一个比较大的单体应用、一般按照3层架构来开发、使用单数据库、缓存也是可选组件、而应用系统和数据库也很可能部署在同一台物理机上那么、网站流量增加时怎么办 ?1) 第一步肯定是扩容来解决...

2018-10-03 20:30:17 430

原创 限流

限流详解Why & What限流算法应用级限流分布式限流降级预案Why & What1. 开发高并发系统时、有很多手段来保护系统、如:缓存、降级和限流等缓存的目的是提高系统访问速度和增大系统处理能力、可谓是高并发系统的银弹而降级是当服务出问题或者影响到核心流程的性能、需要暂时屏蔽掉、待高峰过去后再打开的场景而有些场景并不能使用缓存或降级来解决、eg. ...

2018-10-03 20:29:41 101

原创 超时与重试.md

超时与重试profile超时分类profile很多故障是超时引起的、eg. 若应用不设置超时、则可能会导致请求响应慢、慢请求积累会导致连锁反应、甚至造成应用雪崩、而有些中间件或者框架在超时后进行重试(eg. 重试设置两次)、读服务天然适合重试、而写服务太多不能重试(eg. 写订单、如果写服务是幂等的、则重试是允许的)、重试次数太多、会导致多倍流量请求、模拟了ddos攻击、后果可能是...

2018-10-03 20:28:59 144

原创 负载均衡与反向代理

负载均衡与反向代理upstream配置负载均衡算法失败重试健康检查其它配置长连接http反向代理示例Nginx四层负载均衡upstream配置upstream backend{ server 192.268.61.1:9090 weight=1; server 192.268.61.1:9091 weight=2;}upstream 的主配置ip...

2018-10-03 20:28:22 294

原创 系统设计原则

高并发原则高可用原则业务设计原则高并发原则1. 无状态 若应用无状态、方便水平扩展、则要保证配置服务有状态 eg. 不同的机房需要读取不同的数据源、此时可以通过配置中心指定2. 拆分 拆分不是必须的、可以根据系统流量和人员状况来进行 1) 系统维度 eg. 订单、购物车、结算等可以拆分成不同的服务 2) 功能维度 eg. 优...

2018-10-03 20:27:35 2191

原创 Redis4 - 管理

Redis管理备份和恢复监控内存Redis管理 1. 从指定config加载一个服务 redis-server conf/redis.conf redis-server 可以为绝对路径、配置路径也可以为绝对路径 eg. /usr/local/bin/redis-server ~/build/redis4.0.1/conf/redis-637...

2018-09-21 07:35:31 226

原创 Redis4 - 生产环境部署

linux 部署安全配置客户端连接内存管理基准测试linux 部署 1. 设置内存相关的参数 sudo sysctl -w vm.overcommit_memory=1 sudo sysctl -w vm.swappiness=0 可以使用 echo vm.overcommit_memory=1 >> ...

2018-09-21 07:31:25 684

原创 Redis4 - 高可用

复制复制优化sentinelcluster复制 info replication 检测复制关系 master_replied 标记主实例 master_repl_offset 是复制流中的一个偏移量标记、会随着主实例上的数据事件的发生而增长 完全同步: 将所有数据复制到rdb文件、然后发送给从实例、 从实例接收到rdb文件后、会先将...

2018-09-21 07:30:51 468

原创 Redis4 - 持久化

rdbaofrdb eg. save 900 1 若900s内有一个键发生改变、则进行持久化存储 1. save 会使用主线程进行同步转储、 bgsave是创建一个子进程进行存储 2. save会阻塞服务器 bgsave、redis主进程会创建一个子进程将转储数据保存到一个temp-%s.rdb 的临时文件中、 转储完...

2018-09-21 07:30:16 136

原创 Redis4 - 应用

常见场景存储优化其它常见场景 1. 会话存储. web server负载均衡之后、可以使用redis统一进行会话存储 2. 数据统计. eg. 有多少人查看xx 3. 排行榜. 可以使用sorted set实现 4. 队列. 不支持持久化 5. 最新的N个记录. 可以使用list实现 6. 通常使用的缓存服务器存储优化 1....

2018-09-21 07:29:46 89

原创 Redis4 - 编译安装&连接

下载安装redis连接redis信息查询下载安装1. 源码下载 https://redis.io/ 目前最新版本 4.11 2. 解压到指定文件夹 eg. 我的放到 ~/build下3. 编译 & 安装 cd ~/build/redis-4.0.11 新建配置文件夹 mkdir conf 将配...

2018-09-21 07:29:13 357

原创 Redis4 - 数据特性

位图设置键的过期时间排序pipelineredis事务发布订阅使用lua脚本位图 1. 位图的底层数据实现是字符串 2. setbit 设置比特位 eg. setbit "user_reading" 400 1 设置相应的bit位 gitbit "user_reading" 400 获取bit位 bitcount ...

2018-09-21 07:28:19 293

原创 Redis4 - 数据类型

get & setlisthashsetsorted setHyperLogLoggeo对象键管理疑问get & set redis里最常用的命令了 set {{key}} {{val}} | get {{key}} 注意一些小问题: set 已存在的键、会将原值覆盖、若不想被覆盖、可以使用setnx mset & mget 可以一次获取或...

2018-09-21 07:27:44 141

原创 Redis4 - README.md

一些说明书籍资源一些说明除特别说明外、本系列文档都是针对 redis 4.x 的版本是读书笔记、希望分享出来、可能提炼度不够、还望有缘路过的朋友切莫要求太高~~.~~书籍:Redis-4.x CookBook书籍资源代码git托管地址:https://github.com/PacktPublishing/Redis-4.x-Cookbook书中相关图文:https:...

2018-09-21 07:27:06 142

原创 小确幸

缘起过往、感恩现在、enjoying~~未来、waiting~~接下来的日子Why缘起 起床、读书、做在窗边、抬头的那一刻、竟是万分温暖、初阳淡淡、轻洒墙角、沉睡了一晚的楼脚飘过 一抹明丽的淡红、不由自主想起那些游离于心间的美好、禁不住自我感动了一把^.^ 又想起最近种种、嗯嗯、那么、让我开始一个新的篇章吧~~过往、感恩 普通的不能在普通的大...

2018-09-21 07:25:40 187 1

原创 手机前端优化

看到一篇文章,感觉写的不错,保留下,也希望路过的人可以看到它~~~https://github.com/amfe/article/issues/21

2018-08-12 22:02:40 85

原创 composer学习

关于composer的使用下载安装:mac 可以直接使用brew install composer其它可以:curl -sS https://getcomposer.org/installer | php检测安装: php composer.phar | composercomposer.jsonname : 包名(供应商/项目)description : 包...

2018-08-12 21:59:58 175

原创 ChunkSpy使用

lua学习:1. chunkSpy使用 1)查看帮助选项lua ChunkSpy.lua --h 2)反汇编二进制文件 lua ChunkSpy.lua luac.out luac.out是luac编译得到的二进制文件 3) 输出lua文件的opcode lua ChunkSpy.lua --source myscript.lua my...

2018-08-12 21:59:19 280

原创 vi

基本操作插入模式下视图模式命令行模式基本操作. 重复上次操作 @: 重复上次的Ex命令A 在行尾添加、可以使用A 代替 $as 删除当前光标所在字符、并进入插入模式>G可以增加当前行到文档末尾处的缩进<G会减小当前行到文档末尾的缩进shift+v会选中行f{char}在行内查找 ;重复执行 , 回退F{char} 在行...

2018-08-12 21:58:09 137

原创 lua语法

1. 脚本参数可以通过arg得到、它会建立arg表2. -i进入交互模式、-e直接执行 -l加载动态库3. 习惯命名 1)驼峰 2)属性+类型+名称 4. lua的数据类型 简单类型: 1)空值 2)布尔 3)数字 直接存放值 引用类型:4)字符串 5)函数 6)自定义类型 7)线程 会存放变量和值地址5. lua使用double类型来表示number类型的值、所以不会存在四舍五...

2018-08-12 21:57:08 140

原创 ChunkSpy使用

lua学习:1. chunkSpy使用 1)查看帮助选项lua ChunkSpy.lua --h 2)反汇编二进制文件 lua ChunkSpy.lua luac.out luac.out是luac编译得到的二进制文件 3) 输出lua文件的opcode lua ChunkSpy.lua --source myscript.lua my...

2018-08-04 18:34:08 451

原创 nginx配置详解

嗯嗯、嗯、文件内容有点多、实在不方便导出为图片了、资源源文件我放在https://download.csdn.net/download/njys1/10583643需要的朋友们自行下载吧~~~

2018-08-04 18:22:57 50

原创 nginx+lua 安装

安装安装1. 编译出错: ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make[1]: *** [objs/nginx] Er...

2018-08-04 18:16:16 193

原创 nginx+lua学习

本来想把xmind源文件放在这里的、很遗憾不能支持文件上传了、只能导出为图片xmind源文件我上传到资源文件了https://download.csdn.net/download/njys1/10583625https://download.csdn.net/download/njys1/10583620https://download.csdn.net/download/njys1/10...

2018-08-04 18:14:49 649

原创 程序内存分布图

之前一直不太清楚程序运行时内存是怎么发生变化的、当我看到这幅图时、有点儿明白了希望也能对大家有所帮助~~

2018-08-04 17:52:34 187

原创 操作系统学习

编译与解释编译的步骤Gcc 相关进程虚拟内存内存管理缓存策略多任务线程编译与解释1. 编译型语言是指:程序被翻译成机器语言、之后由硬件执行 解释型语言指:程序被软件解释器读取并执行2. 静态是指在编译时发生的事、动态是指在运行时发生的事3. 在解释型语言中、变量名会被存储在内存中、 而在编译型语言中、一般只保存值所在的地址...

2018-08-04 17:46:56 518

原创 C基础知识整理学习

C基础学习常量变量运算符和表达式输入/输出数组指针函数构造类型动态内存管理C基础学习1. 正数的补码是它本身、负数的补码是它的绝对值取反、+12. ASCII码为0 的字符是 NULL3. char型和整型一样、都是以补码的形式存储、它其实可以是 -128 ~ 127 所表示的范围、unsigned char是0~2554. fl...

2018-08-04 17:44:16 121

原创 idea 使用

idea 使用1. 破解:http://idea.lanyus.com/ 或者:使用 jetbrainsPatchKeygen.jar2. project 就是idea的工作空间(eclipse中的workspace) 一个project下可以包含多个module、多个module应该是属于同一个业务的, 相当于eclipse中的project3. 常用设置 1. 主...

2018-08-04 17:42:14 70

原创 gdb调试学习

1. 隐藏gdb进入时的版本信息 gdb -q2. gdb输出信息较多时、gdb会暂停输出、打印提示信息、关掉提示、可以使用 set pagination off 或者 set height 03. info functions 查看所有的函数列表4. info functions thread* 查看所有以thread开头的函数列表5. n 执行下一句代码 s 进入自...

2018-08-04 17:41:27 84

原创 makefile编写

Why之前学过一点点、也改过一些简单的makefile、但是不知道关于makefile、哪些是自己未知的领域、所以、决定找点资料、完整的学一学、有人推荐 <跟我一起学makefile>,于是就找来读了读、大概就是下边的内容~~1) include 假设a.mk b.mk 和foo.mk, 及变量 $(bar)包含了e.mk和f.mk 那么:include fo...

2018-08-04 17:36:32 578

原创 php7的一些变化

1. php7的变化: 1)抽象语法树 之前的php版本、php代码在语法解析阶段直接生成了zendvm指令、也就是在zend_language_parser.y中直接生成opline指令、使得编译器和执行器耦合在一起 php7是先生成抽象语法树、然后将抽象语法树编译成ZendVM指令,使得php的编译和执行隔离开 2)Native TLS 在5的版本中、有一...

2018-04-07 13:58:58 572

原创 关于foreach的一些思考

以下代码输出的结果分别是? $a = ['one', 'two', 'x'=>'y', 'a'=>'long']; $val = 'si'; foreach ($a as &$val) { $val = $val . 'x'; } var_dump($val); -------------------- $a = ['one', 'two', 'x'=>'y',

2018-01-24 07:49:44 197

原创 php基本数据类型

1. 混合类型的key$array = array( "foo" => "bar", "bar" => "foo", 100 => -100, -100 => 100,);var_dump($array);2. 重复key$array = array( 1 => "a", "1" => "b", 1.5 => "c

2018-01-23 23:59:34 276

原创 2017,2018

有时候、走着走着就迷茫了有时候、一身孤单想要打破一些东西有时候、觉得自己该活泼些有时候、又觉得自己该稳重些有时候、自己很难过又要表现的很开心有时候、却禁不住泪流满面有时、夜深人静无法入眠有时、短短的十分钟还能做个美美的梦有时、喜欢一个人安安静静的呆着、什么都不做有时、却希望有人陪着、聊聊天聊聊孤单有时、明知道有些事无力阻挡、依然会落寞有时、明知道一些人无法把握、依然会神

2018-01-23 07:34:17 176

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