前言:收徒现状MyBatis中文官网上线于2018年3月,陪伴大家走过了近四年的时光,站长收徒这项传统活动也举办了四届,天下没有不散的宴席,这次是最后一次了。不同于社会上的培训机构,站长收徒依照的是传统模式,徒弟都是终身VIP,除了每周一次公开课串讲以外,主要还是一对一辅导。每周都会有徒弟找我聊,或者聊一下职业发展的困惑,或者求助于技术上的难题,教学相...

学习和研究mybatis框架,我一般会参考mybatis中文文档,这是mybatis官方维护的一份指导学习文档,具有权威性:https://mybatis.org/mybatis-3/zh/index.html此文档开头会标明mybatis当前最新版本号:mybatis中文文档分为以下几个部分:XML配置:https://mybatis.org/myb...

mybatis 3.5.7 发布当前mybatis的最新版本是 mybatis 3.5.7,发布时间是2021年4月26日,官方下载链接为:mybatis-3-releasesmybatis 3.5.7 的使用要使用最新版本MyBatis, 只需将 mybatis-3.5.7.jar 文件置于类路径(classpath)中即可。如果使用 Maven 来...

MyBatis Generator是MyBatis的代码生成器,顾名思义,使用MyBatis Generator可以很方便的将一个数据库表(或多个表)生成可用于访问该表的MyBatis代码。MyBatis Generator能够简化大部分简单CRUD(创建、检索、更新、删除)的数据库操作。MyBatis Generator可以为基于Java的项目或基于...

首先,我要说明一下,此文的观点仅仅是就事论事,无人身攻击。我相信这些“卷王”和“肝帝”都是不错的人,他们热爱技术,喜欢分享,但是我不认同这种“卷”和“肝”的方式。在我看来,公众号是这个时代最大的笑话,因为绝大多数号主都活成了自己讨厌的样子。《肝了个操作系统,悟了...》雷人的标题下原来是卖课的。技术是没有价值的,只有解决了问题,技术才能体现出价值。这些...

我的初衷是建立一个国内领先的mybatis+mysql技术交流平台。一路走来,摸索和试错居多,几多迷茫,几多惆怅,但是初心依然。最近将网站的栏目进行了大幅度的调整,只希望做到更专注、更专业。另外,关于“技术交流”的实现,主要是通过公开课的形式,不再通过微信群的形式。维护一个群的时间和精力成本太大了,而且群中很多问题偏向于基础和入门,并且十分零碎,不如做...

1、Redis Lazy Free 诞生背景众所周知,Redis在处理客户端命令时是以单线程形式运行,虽然处理速度很快,但是命令执行期间不会响应其他客户端请求。随着互联网的发展,海量数据存储在Redis里面,如果客户端向Redis发送一条耗时较长的命令,比如删除一个含有上百万对象的set键,或者执行flushdb、flushall等操作,将会导致服务器...

前言本文的内容来源于互联网,可谓是博采众家之长,并稍微添加了一些我的个人经验。说实话,我并没有阅读过Redis的源码,但是我之前花费了很多时间用Linux的Epoll开发Socket项目,所以对Redis高并发所依仗的I/O复用机制有深刻的感悟,绝非纸上谈兵。看到很多人在分享I/O复用机制的相关内容,我的忠告是,对于一个纯Java的博主说,不管你的构图...

Redis中的Keys命令和Smembers命令类似于数据库中的全表扫描,其中,Smembers命令返回集合中的所有的成员,与数据库中的全表扫描无异。由于Redis是单线程,而Keys命令和Smembers命令会造成Redis线程的堵塞,在生成环境需要十分慎重的使用。 为了避免Redis线程的堵塞,出现了查询迭代命令,也就是Scan命令,其用于迭代当前...

Redis最新版本是多少呢?见Redis官网介绍:Redis 6.2.5 is the latest stable version.当前最新版本是:Redis 6.2.5如何查看Redis版本号呢?有两种方式,如下所示:redis-server --versionredis-server -vredis-cli -v redis-cli --version

关于Redis的配置文件,主要掌握以下三个常见问题,从而才能使用Redis得心应手。1、Redis的配置文件的位置在哪里?Redis的配置文件是 redis.conf,其包含在Redis源码目录之中,当我们将Redis安装之后,配置文件的位置通常是在:/etc/redis/redis.conf2、Redis启动时如何指定配置文件?如果我们想在Redis...

今天我想把“如何去阅读源码?”这个话题展开分析一下,其中有些经验很有价值,故此分享给大家。1、阅读源码的必要性一个软件开发人员,工作到了一定的年限,一般是3、4年左右,如果还不会主动地去阅读源码,那么他就会遇到职业发展的瓶颈。因为到了这个工作年限,开发者不应该只会做些 CURD 的业务逻辑,更应该会根据公司的实际情况去写模块和框架。没有谁天生就可以独当...

备注:本文修订于2021年7月15日Sun/Oracle JDK和OpenJDK的历史渊源JDK,全称是:Java Development Kit,是Java语言的软件开发工具包,它包含了Java的运行环境(JVM+Java系统类库)和Java工具(包括编译工具,检测工具等)。Java语言由Sun公司开发,Sun的全称实际上是 Stanford Uni...

JRL协议是什么?JRL协议全称是:Java Research License,中文意思是:Java研究授权协议。JRL协议由Sun公司于2005年3月发布,可以认为是Sun公司在Java开源之路上的一个重要环节。JRL协议的作用是什么?Sun公司基于战略考虑,决定开放JDK的源码。JDK不同于Sun公司之前已经开源的Java类库,而是Sun公司的核心...

1、== 解读对于基本类型和引用类型 == 的作用效果是不同的,如下所示:基本类型:比较的是值是否相同;引用类型:比较的是引用是否相同;代码示例:String x = "string"; String y = "string"; String z = new String("string");...

备注:本文修订于2021年9月21日Redis Sscan 命令用于迭代set集合中键的元素,Sscan 继承自 Scan。当set类型的数据量比较小时可以使用smembers命令取出全部key,但是当数据量比较大情况下,使用这个命令会阻塞住Redis线程,众所周知,Redis是单线程运行模式。Redis客户端对服务端的每次调用都经历了发送命令,执行命...

备注:本文更新于2021年9月16日1、Redis Scan命令简介Redis中的Keys命令类似于数据库中的全表扫描,其中,Smembers命令返回集合中的所有的成员,与数据库中的全表扫描无异。由于Redis是单线程,而Keys命令会造成Redis线程的堵塞,在生成环境需要十分慎重的使用。为了避免Redis线程的堵塞,出现了查询迭代命令,也就是Sca...

Redis是一个功能缓存数据库,它支持五大数据类型,包括字符串类型(string)、列表(list)、集合(set)、有序集合(zset)、哈希(hash)。我觉得,相比于其他的类型,集合类型值得重点关注。集合,简称集,是数学中一个基本概念,也是集合论的主要研究对象。集合论是在19世纪末由德国的康托尔(1845-1918)创立起来的。集合论是关于无穷集...

看到 info , 我联想到了域名的后缀,.info 是域名的后缀。我手上大概有200多个域名,每年的域名续费都是一笔沉重的开支啊!不过,我仅仅持有一枚.info域名。而在 redis 的管理中,info 是个非常重要的命令。使用 redis 的系统命令 info 可以对 redis 进行监控,其用法如下所示:127.0.0.1:6379> in...

前言本系列内容由站长北侠编写,最后更新时间为:2021年6月21日第一节:Redis的下载和安装(Linux环境下)进入Redis官方网站,选择当前最稳定版本Redis 6.2,获取下载链接,即可进行下载,如下所示:wget https://download.redis.io/releases/redis-6.2.4.tar.gz下载完成之后,解压到当...

1、Jedis 简介Jedis 是 Redis 官方首选的 Java 客户端开发包。2、Jedis 最新版本引用 Jedis 需要的 Maven 依赖,可以查看 Maven 官方网站:https://mvnrepository.com/artifact/redis.clients/jedis当前Jedis最新版本是3.6.1,如下图所示: 点击上...

备注:本文内容节选自《全面解读Raft共识算法》,想了解更全面的Raft算法解读,请移步链接即可。在Raft论文中,成员变更属于难点,但这一部分相比于论文其他部分,确实讲解最不详细,让人读完之后很迷惑。1、什么是成员变更?成员变更指的是系统成员变化,即服务器节点的上下线,这和由于宕机故障导致的上下线是不同的。宕机或者重启导致的上下线,是不会影响系统的注...

Raft算法中,有三种很重要的超时设置:选举超时、最小选举超时、心跳超时。下文给大家详细的介绍一下。(1)选举超时。就是新一轮选举开始时,每个节点随机思考要不要做领导者的时间,这个时间一般100-到200ms,非常短。假设集群由3个节点组成,为了防止3个节点同时发起投票,Raft会给每个节点分配一个随机的选举超时时间(Election Timeout)...