首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
SH的全栈笔记
SH的全栈笔记
创建于2021-05-17
订阅专栏
专注于后端技术
等 49 人订阅
共86篇文章
创建于2021-05-17
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
深度图解Redis Cluster原理
上文我们聊了基于Sentinel的Redis高可用架构,了解了Redis基于读写分离的主从架构,同时也知道当Redis的master发生故障之后,Sentinel集群是如何执行failover的,以及其执行failover的原理是什么。 这里大概再提一下,Sentinel集群会…
Redis Sentinel-深入浅出原理和实战
之前的文章聊到了Redis的主从复制,聊到了其相关的原理和缺点,具体的建议可以看看我之前写的文章Redis的主从复制。 总的来说,为了满足Redis在真正复杂的生产环境的高可用,仅仅是用主从复制是明显不够的。例如,当master节点宕机了之后,进行主从切换的时候,我们需要人工的…
收获满满的2020 | 掘金年度征文
相对于其他大佬的经历,我这段经历虽然显得更加的平淡一些,但是对我来说仍然是意义非凡的,希望分享出来与大家共勉。 从我18年毕业一直到20年的下半年,我都在一家小公司里干着后端开发,虽然我在负责部门的技术,干的也不全是CRUD,但是部门所做的业务和部门的定位(内部支撑系统)就已经…
跟随杠精的视角一起来了解Redis的主从复制
虽然说单机的Redis性能很好,也有完备的持久化机制,那如果你的业务体量真的很大,超过了单机能够承载的上限了怎么办?不做任何处理的话Redis挂了怎么办?带着这个问题开始我们今天的主题-Redis高可用,由于篇幅原因,本章就只聊聊主从复制。 为啥要先从主从复制开始聊,是因为主从…
Redis基础—了解Redis是如何做数据持久化的
之前的文章介绍了Redis的简单数据结构的相关使用和底层原理,这篇文章我们就来聊一下Redis应该如何保证高可用。 我们知道虽然单机的Redis虽然性能十分的出色, 单机能够扛住10w的QPS,这是得益于其基于内存的快速读写操作,那如果某个时间Redis突然挂了怎么办?我们需要…
Redis基础——剖析基础数据结构及其用法
如果你是一个有经验的后端或者服务器开发,那么一定听说过Redis,其全称叫Remote Dictionary Server。是由C语言编写的基于Key-Value的存储系统。说直白点就是一个内存数据库,既然是内存数据库就会遇到如果服务器意外宕机造成的数据不一致的问题。 这跟很多…
大白话聊聊微服务——人人都能看懂的演进过程
这篇博客的本意是希望看到这篇文章的读者能够很轻松的理解我想表达的意思。但程序向的分享经常会不经意间就贴上了代码,很可能就会让人看的很懵。而且我认为分享一个东西,只有对方真正明白了其中的逻辑,才是有意义的分享。所以接下来我会尝试用大家都能理解的语言来聊一聊”微服务“。 那么,什么…
简单了解InnoDB底层原理
很多文章都是直接开始介绍有哪些存储引擎,并没有去介绍存储引擎本身。那么究竟什么是存储引擎?不知道大家有没有想过,MySQL是如何存储我们丢进去的数据的? 其实存储引擎也很简单,我认为就是一种存储解决方案,实现了新增数据、更新数据和建立索引等等功能。 种类很多,但是常用的存储引擎…
浅谈JVM与垃圾回收
简单的介绍一下JVM(Java Virtual Machine)吧,它也叫Java虚拟机。虽然它叫虚拟机,但是实际上不是我们所理解的虚拟机,它更像操作系统中的一个进程。JVM屏蔽了各个操作系统底层的相关的东西,Java程序只需要生成对应的字节码文件,然后由JVM来负责解释运行。…
深入了解ConcurrentHashMap
在上一篇文章【简单了解系列】从基础的使用来深挖HashMap里,我从最基础的使用中介绍了HashMap,大致是JDK1.7和1.8中底层实现的变化,和介绍了为什么在多线程下可能会造成死循环,扩容机制是什么样的。感兴趣的可以先看看。 首先看一下ConcurrentHashMap的…
【简单了解系列】从基础的使用来深挖HashMap
说的专业一点,HashMap是常用的用于存储key-value键值对数据的一个集合,底层是基于对Map的接口实现。每一个键值对又叫Entry,这些Entry分散的存储在一个由数组和链表组成的集合中。当然在Java8中,Entry变成了Node。 首先我们要知道,我们存在Hash…
【俗话说】换个角度理解TCP的三次握手和四次挥手
0. 什么是TCP TCP,全称Transmission Control Protocol,是一种面向连接、可靠的、基于字节流的单播协议。与我们常说的TCP/IP协议不同,TCP/IP是一个协议族,涉及到OSI模型中的网络层、应用层和应用层。而我们要聊的TCP就是在传输层的协议…
【硬核教程】只需1秒—你也可以有自己的API文档
先聊聊为什么想到了要用Vuepress来代替原来写在Confluence上的文档。 大意是有个需要其他部门接入的项目,这个项目有个用md写的接入文档,其他部门的人需要看着这个文档才知道怎么接以及哪些东西需要接。 而且这个md文件是放在confluence上的。 本身用confl…
简单了解一下K8S,并搭建自己的集群
距离上次更新已经有一个月了,主要是最近工作上的变动有点频繁,现在才暂时稳定下来。这篇博客的本意是带大家从零开始搭建K8S集群的。但是我后面一想,如果是我看了这篇文章,会收获什么?就是跟着步骤一步一走吗?是我的话我会选择拒绝,所以我加了关于K8S的简单介绍,每一步的步骤都添加了解…
两分钟让你明白Go中如何继承
最近在重构代码的时候,抽象了大量的接口。也使用这些抽象的接口做了很多伪继承的操作,极大的减少了代码冗余,同时也增加了代码的可读性。 然后随便搜了一下关于Go继承的文章,发现有的文章的代码量过多,并且代码format极其粗糙,命名极其随意,类似于A、B这种,让人看着看着就忘了到底…
游戏服务器和Web服务器的区别
用Go语言写游戏服务器也有一个多月了,也能够明显的感受到两者的区别。这篇文章就是想具体的聊聊其中的区别。当然,在了解区别之间,我们先简单的了解一下Go语言本身。 1. Go语言的特点 Go语言跟其他的语言例如Java比起来,算得上一门很年轻的语言。Go语言是由Robert Gr…
Go中使用Seed得到重复随机数的问题
1. 重复的随机数 废话不多说,首先我们来看使用seed的一个很神奇的现象。 可能会有人说是你数据的样本空间太小了,OK,我们加大样本空间到10w再试试。 你会发现结果仍然是一样的。简单的推理一下我们就能知道,在上面那种情况,每次都取到相同的随机数跟我们所取的样本空间大小是无关…
从Web转到游戏之后
从Web转岗到游戏也有接近一个多月了,同时也有一个多月没有更新博客了。就像上篇博客从web到游戏,走出舒适区所说的,转岗所带来的压力以及需要了解的东西让我处于一种有时间没有精力,有精力没有时间的状态。 这可以说是我经历过压力最大的一次,当然压力的来源不全是工作上的,更多的是压力…
从web到游戏,走出舒适区
最近很久没有更新博客了,实在太忙。因为在这段时间里我做了一个改变了我现在职业生涯的一个决定,而我现在正在为这个决定而加倍的努力付出。 我认为我还是有必要把这个比较重要的节点记录下来,我也是第一次在自己的博客里面写这种偏阅读非技术类的文章,虽然没有技术细节,却又与技术息息相关。 …
你知道和你不知道的选择排序
1. 什么是选择排序? 首先贴上从 wiki 上弄下来的关于选择排序的定义。 更加直白的解释是,每次都从数组中选出最大或者最小的元素,然后放到数组的左边。 2. 选择排序的过程展示 老规矩,我们还是通过动图来看一下选择排序的过程。以下的gif来自于wiki。 然后我们再通过我制…
下一页