前言本文的内容来源于互联网,可谓是博采众家之长,并稍微添加了一些我的个人经验。说实话,我并没有阅读过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...

备注:本文修订于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、BSD是什么?BSD (Berkeley Software Distribution,伯克利软件套件)是Unix的衍生系统,类Unix操作系统中的一个分支的总称,在1977至1995年间由加州大学伯克利分校开发和发布的。2、BSD的影响BSD对现代操作系统的产生与发展产生了巨大的影响,并将开源闭源的争议摆在了人们面前。拥护闭源专利的代表Bill G...

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,如下图所示: 点击上...

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 来...

备注1:本系列Linux入门教程总共有30小节,当前已经更新12小节,最后更新日期为:2021年6月26日,未完待续...。备注2:互联网上很多的东西都太零散太随意,碰到问题上网寻求解决,还算尚可,但是要想寻找好的教程还是非常困难的,因为很多内容都是新手写的,有经验的老手没有时间写或者不想写,所以导致大家学习Linux的过程中,总是云里雾里,终不能提升...

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

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

在Raft共识算法中,不存在分阶段提交,所以不属于二阶段提交。在Raft共识算法中,Leader选出后,就开始接收客户端的请求。Leader把请求作为日志条目(Log entries)加入到它的日志中,然后并行地向其他服务器发起 AppendEntries RPC 复制日志条目。当这条日志被复制到大多数服务器上,Leader将这条日志应用到它的状态机并...

为了解决分布式问题,为了使系统尽量能够达到 CAP,涌现了很多经典的算法和协议,最著名的就是二阶段提交协议,简称 2PC。顾名思义,二阶段提交就是将事务的提交过程分成了两个阶段来进行处理。第一阶段:准备阶段(投票阶段)和第二阶段:提交阶段(执行阶段)。流程如下: 二阶段提交的优点优点:原理简单,实现方便。二阶段提交的缺点缺点:同步阻塞,单点问题,...