其他

Redis持久化策略——AOF

男孩“一觉醒来”忘记了对女孩子的承诺,这时候女孩子把曾经海誓山盟的录音逐条播放给男孩子听,帮助他“恢复记忆”。“男孩一觉醒来”像极了Redis宕机重启的样子,而女孩子的录音就是Redis的AOF日志。 我是蝉沐风,一个让你沉迷于技术的讲述者 公众号【蝉沐风】,欢迎大家关注留言 上一篇文章给大家介绍了Redis是如何通过RDB的方式进行数据持久化的 就这?Redis持久化策略——RDB 这篇文章继续为大家介绍Redis的另一种持久化策略——AOF。 什么是AOF 男孩“一觉醒来”忘记了对女孩子的承诺,这时候女孩子把曾经海誓山盟的录音逐条播放给男孩子听,帮助他“恢复记忆”。 “男孩一觉醒来”像极了…

七大软件设计原则之一 | 开闭原则

我举一个例子,陀螺是个程序喵,创办了一个生产猫粮的公司——跑码场,手下有个小徒弟叫招财,写了一个下单的逻辑。 开闭原则是指一个软件实体(模块、类、方法等)应该对扩展开放,对修改关闭 我举一个例子,陀螺是个程序喵,创办了一个生产猫粮的公司——跑码场,手下有个小徒弟叫招财,写了一个下单的逻辑。 逻辑本身很简单,核心业务逻辑主要是order()函数,客户需要传入相应的猫粮口味flavor进行下单。 现在跑码场扩展了业务,新增了一种「大肠刺身」口味的猫粮,而且支持用户自定义猫粮购买数量(毕竟这种口味可能会供不应求)。在以上代码的基础上,...

控制反转,依赖注入,依赖倒置

通过这篇文章,你将了解到控制反转(IoC)是什么?「反转」到底反转了什么? Spring和IOC之间是什么关系? 依赖注入(DI)和依赖倒置原则(DIP)又是什么?IOC、DI和DIP有什么关系? 通过这篇文章,你将了解到 控制反转(IoC)是什么?「反转」到底反转了什么? Spring和IOC之间是什么关系? 依赖注入(DI)和依赖倒置原则(DIP)又是什么? IOC、DI和DIP有什么关系? 目录 1. 控制反转(IoC) 1.1 一个典型案例 1.2 IoC概念的提出 1.3 为什么提出IoC 1.4 Spring和IoC的关系 1.5 面试中被问到IoC怎么回答 2. 依...

聊一聊Redis事务

你会了解Redis为什么要提供事务? Redis事务基本指令和使用方法;CAS乐观锁是什么?Redis事务为什么不支持回滚? 没错,Redis也有事务管理,但是功能很简单,在正式开发中也并不推荐使用。但是面试中有可能会问到,所以本文简单谈一谈Redis的事务。 通过这篇文章,你会了解 Redis为什么要提供事务? Redis事务基本指令和使用方法 CAS乐观锁是什么? Redis事务为什么不支持回滚? 1. 为什么要用事务 我们知道Redis的单个命令是原子性的,比如get、set、mget、mset等指令。 原子性是指操作是不可分割的,在执行完毕之前不会被任何其它任务或事件中断...

VSCode教程

换了电脑?需要重装VSCode从新开始配置?使用插件同步VSCode配置吧,再也不担心重装VSCode了 1. 关于Settings Sync插件 Setings Sync插件可以同步你的VSCode配置到Github Gist,当你更换电脑重新搭建VSCode环境的时候,直接使用该插件拉取你之前同步的配置即可,不至于让你一切重新开始 Gist可以简单理解为是保存代码片段的小仓库 2. 新手教程 2.1 新手下载安装 点击扩展按钮,搜索Setings Sync并安装,会自动弹出以下界面 点击LOGIN WITH GITHUB按钮,输入你的用户名和密码进行授权 如果你从未创建过任何...

VSCode官方的配置同步方案

这几天在迁移电脑工作环境,对于VSCode,我实在不想从头做下载插件、配置代码规则这样的事情,在求助百度并写了自己踩坑的一篇文章之后发现官方居然有同步方案,于是决定再写一篇 前言 这几天在迁移电脑工作环境,对于VSCode,我实在不想从头做下载插件、配置代码规则这样的事情,于是求助百度,搜索结果靠前的解决方案基本都是使用Setings Sync插件,于是我就从了。 经过好一番折腾,甚至还踩了网上都很难找到解决方案的坑,诚意满满地写了一篇同步的文章。然后就有朋友评论留言告诉我说官方有解决方案。 于是为了让更多的朋友知道这种方案,我查了VSCode的官方文档,决定再写一篇VSCode...

IDEA一键部署SpringBoot项目到服务器

还在用FTP工具上传jar包?教你使用IDEA一键部署SpringBoot项目 1. 安装Alibaba Cloud Toolkit插件 2. 配置部署环境 2.1 为本次部署设置一个名字 2.2 选择被部署文件的生成方式 IDEA提供了三种方式:Maven Build,Upload File,Gradle Build,虽然我的SpringBoot项目使用的是Maven构建工具,但是我一般情况下选择Upload File的方式。因为我的项目是多模块项目,选择Maven Build方式的话IDEA并不知道需要上传的是哪个jar包(因为在每个模块下都会生成自己的jar包)。 使用Upload Fi…

图解|12张图告诉你MySQL的主键查询为什么这么快

什么是InnoDB行格式?InnoDB页是什么? InnoDB页和InnoDB行格式都有哪些字段信息? 为什么推荐使用自增ID作为主键,而不推荐使用UUID? InnoDB设计者如何设计高效算法,快速在一个页中搜索记录。 这是图解MySQL的第3篇文章,这篇文章会让大家清楚地明白: 什么是InnoDB行格式?InnoDB页是什么? InnoDB页和InnoDB行格式都有哪些字段信息? 为什么推荐使用自增ID作为主键,而不推荐使用UUID? InnoDB设计者如何设计高效算法,快速在一个页中搜索记录。 正文开始! 注:我们接下来的所有描述,针对的都是InnoDB存储引擎,如果涉及到...

图解|从根上彻底理解MySQL的索引

这篇文章会让你明白什么是索引,彻底理解B+树和索引的关系;彻底理解主键索引、普通索引、联合索引;了解什么是HASH索引,InnoDB和MyISAM索引的不同实现方式;轻松理解后续的索引使用规则。 这是图解MySQL的第4篇文章,这篇文章会让你 明白什么是索引,彻底理解B+树和索引的关系; 彻底理解主键索引、普通索引、联合索引; 了解什么是HASH索引,InnoDB和MyISAM索引的不同实现方式; 轻松理解后续的索引使用规则。 1. 准备工作 为了更好地解释索引,我们先建个表。 我创建了一个存储引擎为InnoDB的...

图解|用好MySQL索引,你需要知道的一些事情

你将会彻底理解索引覆盖和索引下推,索引失效的几个主要场景以及索引的创建和使用原则 我是蝉沐风。 这一篇文章来聊一聊如何用好MySQL索引。 为了更好地进行解释,我创建了一个存储引擎为InnoDB的表user_innodb,并批量初始化了500W+条数据。包含主键id、姓名字段(name)、性别字段(gender,用0,1表示不同性别)、手机号字段(phone),并为name和phone字段创建了联合索引。 1. 索引的代价 索引可以非常有效地提升查询效率,既然这么好,我给每个字段都创建一个索引行不行?我劝你不要冲动...

到底为什么不建议使用SELECT *?

“不要使用SELECT *”几乎已经成为了MySQL使用的一条金科玉律,就连《阿里Java开发手册》也明确表示不得使用*作为查询的字段列表,本文从4个方面给出理由。 “不要使用SELECT *”几乎已经成为了MySQL使用的一条金科玉律,就连《阿里Java开发手册》也明确表示不得使用*作为查询的字段列表,更是让这条规则拥有了权威的加持。 不过我在开发过程中直接使用SELECT *还是比较多的,原因有两个: 因为简单,开发效率非常高,而且如果后期频繁添加或修改字段,SQL语句也不需要改变; 我认为过早优化是个不好的习惯,除非在一开始就能确定你最终实际需要的字段是什么,并为之建立恰当的索引;否则,…