自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (1)
  • 收藏
  • 关注

原创 那些使用缓存不得不面对的坑

当业务发展到一定规模的时候,数据库的性能往往会成为我们整个系统的性能瓶颈,这种情况下,引入一个缓存层往往是系统架构发展的必经之路。但是缓存层的引入并不是完全能够一帆风顺的,这其中依然会存在很多坑等着我们。接下来就由木子同学给大家具体介绍一下使用缓存过程中的一些可能存在的坑以及相应的常见解决方法,包括缓存雪崩、缓存穿透、缓存击穿、big key、hot key、数据一致性等六大问题。全文共计约 6000 字缓存雪崩产生原因缓存雪崩的主要表现就是在同一时刻有大量 key 同时失效,导致后续请求

2021-07-03 19:40:08 217

原创 什么限制了 Redis Cluster 的集群规模

前言很早以前,木子年轻气盛,跟同学飙自行车,结果由于速度过快,得意忘形,直接磕到了马路牙子上,当场右臂骨折。结果第二天,从小学到中学再到大学,一大堆狐朋狗友前赴后继,纷纷前来瞻仰一番他们从没见过的石膏板。看到他们一个个都学会了用笑容来掩饰内心的悲伤,我感到很是欣慰,感动的哭了起来。血淋淋的教训告诉我们:不要飙车!即使是自行车!后来经过证实:是同我一起飙车的那个告诉了我们共同的朋友,然后朋友又告诉了朋友的朋友,就这样一传十、十传百,大家都知道了。大家不妨想一想,是什么起了关键作用,让我受伤

2021-06-26 00:44:49 253

原创 raft 算法中的集群成员变更问题

前言在上一篇文章《分布式一致性算法之 raft 图解》中我们讲解了 raft 算法的领导者选举以及日志复制的问题,同时通过一个具体实例讲解了 raft 是如何通过“一切以领导者”为准来解决日志不一致的情况的。同时在文章结尾笔者也讲到 raft 算法包含的内容远不止这么多,甚至上述的一些问题都是 raft 中的 base(基础)问题。接下来,我们将会用一篇文章来继续讲解 raft 需要解决的另外一个难题 – 成员变更问题。为什么会有成员变更首先我们要有一个常识:一台服务器不可能永远无故障地运行下去,即使

2021-06-19 22:41:55 653 2

原创 分布式一致性算法 - raft 图解

前言应用服务架构的发展是一个循序渐进的过程,从最开始的单机架构逐步演化到如今的基于微服务的分布式架构。与此同时,应用服务最底层的数据支撑 – 数据存储服务也逐渐由单节点单副本逐步往多节点多副本的方向演进。多副本节点通过数据复制技术,可以实现分布式容灾,提高服务的可用性,降低单点故障带来的风险;同时多节点部署,还可以很大程度上提高整个系统的吞吐量,降低访问延迟。但是与此同时,基于 CAP 理论,多副本技术也带来了一致性的问题。raft 算法的诞生正是为了解决在分布式场景之下的数据一致性问题。本文我们将从

2021-06-13 23:08:12 878

原创 linux中的find命令

linux中的find命令用来查找系统中的文件(夹):格式:find [所搜范围] -name init #搜索名为init的文件find [所搜范围] -iname init #搜索关键字可以是大写,也可以是小写find / -size +204800 根据大小查找文件 linux文件大小计量单位:块=512bytes 1kb=1024bytes 块=0.5kb - 100M...

2019-01-14 17:26:53 834

原创 vi编辑器操作

vi编辑器共有三种模式:命令行模式:1)删除:在命令模式按dd删除一行(光标所在的行),dd还有剪切功能2)撤销:在命令模式按u3)复制:在命令模式按yy(多行复制,先按下要复制的行数,然后按yy,光标先放在要复制行的第一行)4)粘贴:在命令模式按p5)shift+a移动到当前行行的末尾,并进入插入模式6)按大写的G移动到文件末尾7)按小写的gg移动到文件的开头8)大写的ZZ...

2019-01-14 16:59:48 806

原创 linux的文件权限

开篇当我们在linux上输入命令 ll时,会显示当前文件夹下的所有文件(夹)的信息,如下图所示:后面几列都是比较好理解的,关键是第一列代表什么意思,相信很多人在最开始跟我一样也有相同的疑惑,接下来我就详细说一下。是什么其实它们代表的是当前文件是什么类型以及不同的用户对这些文件有什么操作权限比如我们拿如下一行举例:drwxr-xr-x. 3 root root 4096 ...

2019-01-13 15:48:43 510

原创 微信小程序获取小程序码并在前端显示(考虑其中没有数量限制的小程序码)

获取access_tokenpublic static String getAccessToken(String appId, String appSecret) { String urlStr = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appId +...

2018-11-23 10:38:42 1899

原创 微信小程序一个特定时间段内的日历控件,加上签到功能

效果图js doDrawCalendar: function (startTime,period){ var daysMapList = []; var curMonth = -1; var dateMap = {}; var that = this; for (var i = 0; i < period; i++) { dateM...

2018-11-07 09:34:33 6153 2

原创 docker 配置nginx支持https

端口映射需要加上443端口docker run --name my-nginx-s -e TZ="Asia/Shanghai" -v /etc/localtime:/etc/localtime:ro -p 80:80 -p 443:443 -d my-nginx-s:1.0负载均衡upstream console.yfjiaoyu.com { server 172.xx....

2018-10-27 10:32:06 2607

原创 计算机查看公网地址

命令行输入:curl ifconfig.me

2018-09-26 11:42:59 570

原创 来自apache的消息队列的对比

三大消息队列对比

2018-09-15 10:37:14 724

原创 java的MD5加密算法

1. 概述MD5消息摘要算法,属Hash算法一类。MD5算法对输入任意长度的消息进行运行,产生一个128位的消息摘要。2. 原理数据填充:对消息进行数据填充,使消息的长度对512取模得448,设消息长度为X,即满足X mod 512=448。根据此公式得出需要填充的数据长度。 填充方法:在消息后面进行填充,填充第一位为1,其余为0。添加消息长度:在第一步结果之后再填充上原消息...

2018-09-06 14:13:12 414

原创 Android中用inteng启用不同应用中的活动

Intent intent = new Intent(this,SecondActivity.class);这个意图是一个显式意图,我们明确地告诉Android要让它启动哪个活动类。如果想要完成某个动作,但是不知道由哪个活动完成,我们可以用隐式意图,由哪个动作完成则留给Android来处理。Intent intent = new Intent(action);这里的action是我

2017-11-08 18:47:16 244

国际象棋走马规则寻找路径

在n*n的棋盘上,按国际象棋的走马规则,从棋盘的任意一个位置开始,让马走遍所有的方格,每个方格至少并且只能走一次,设计求解算法

2017-10-30

空空如也

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

TA关注的人

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