Redis Pipeline
当需要在Redis中执行多个命令时,例如在一次请求中执行多个读取或写入操作,每个命令都需要通过网络往返来发送和接收,这可能会导致性能瓶颈。为了解决这个问题,Redis提供了Pipeline(管道)机制。 Redis...
go通过常量实现枚举
在Go语言中,没有内置的枚举类型,但是可以通过使用const关键字和iota来模拟枚举。下面是一个示例: 1234567891011121314151617181920package mainimport "fmt"type Status intconst ( Unknown Status = iota Pending InProgress Completed)func main() { fmt.Println(Unknown) // 0 fmt.Println(Pending) // 1 fmt.Println(InProgress) // 2 fmt.Println(Completed) //...
Git查看远程仓库
要查看远程仓库的地址,你可以使用Git命令行工具中的git remote -v命令。在命令行中执行以下步骤: 打开命令行终端(如Git Bash)。 导航到你的本地Git仓库所在的目录。你可以使用cd命令切换目录。 运行以下命令: 1git remote -v 这将显示你的本地仓库所关联的远程仓库的地址。输出可能类似于以下内容: 12origin https://github.com/username/repository.git (fetch)origin https://github.com/username/repository.git (push) 在这个示例中,远程仓库的地址是https://github.com/username/repository.git。你可以根据你的实际情况找到相应的地址。
线程池execute OR submit
区别在Java中,ExecutorService是用于执行和管理线程的接口。它提供了两种常用的方法来提交任务:execute()和submit()。 execute()方法:execute()方法是ExecutorService接口定义的方法之一。它接受一个Runnable对象作为参数,并将其提交给ExecutorService执行。该方法没有返回值,因此无法获取任务的执行结果。 12ExecutorService executorService = Executors.newFixedThreadPool(5);executorService.execute(new RunnableTask()); 这种方式适用于不需要获取任务执行结果的场景,例如简单的异步操作或任务执行完成后不关心其返回值。 submit()方法:submit()方法也是ExecutorService接口定义的方法之一。它接受一个Callable或Runnable对象作为参数,并返回一个Future对象,该对象可以用于获取任务的执行结果。 1234ExecutorService...
JavaStreamAPI-map\flatMap
在Java Stream API中,flatMap()和map()都是用于对流中的元素进行转换操作的方法,但它们在处理方式上有一些区别。 map()方法用于将流中的每个元素映射到另一个值。它接受一个函数作为参数,该函数定义了将输入元素转换为输出元素的逻辑。map()方法的输出流与输入流的元素个数相同。 例如,假设我们有一个整数流,我们希望将每个整数都乘以2。可以使用map()方法来实现这一转换: 1234567List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);List<Integer> doubledNumbers = numbers.stream() .map(n -> n * 2) .collect(Collectors.toList());// 输出:[2, 4, 6, 8,...
MySQL笛卡尔积
当在MySQL中使用JOIN语句时,如果没有明确指定连接条件或使用WHERE子句,那么将产生笛卡尔积(Cartesian product)。笛卡尔积是指将两个或多个表中的每一行组合在一起,形成所有可能的组合。 例如,假设我们有两个表A和B: 表A: id name 1 John 2 Jane 表B: id city 1 Paris 2 Tokyo 如果我们执行没有指定连接条件的JOIN查询,如下所示: 1SELECT * FROM A JOIN...
点分十进制版本管理
点分十进制(Semantic...
Golang左移操作与java的不同
Golang左移操作与java的不同背景最近在将一个查询解析pb数据工具迁移到Golang的http服务上,由于pb结构中使用了bitArray,一开始写入pb数据使用的是java服务,protobuf生成的Java代码会将bitArray抽象成java的BitSet类型,protobuf生成Golang代码时会将BitArray转化为golang 的 []int64的切片。 下面是pb的大致结构: 12345678syntax = "proto3";option go_package = "/message";message Message { repeated int64 bitArray = 1; ...
git rebase压缩commit
Git rebase压缩平时编码过程中会有一些“没有用的“commit,为了让我们的commit树更加清晰我们可以使用git 的 rebase命令进行压缩 通过 Git rebase 压缩 commit 可以使用以下步骤: 确保您在正确的分支上进行操作。您可以使用 git branch 命令来查看当前分支。 运行 git rebase -i HEAD~n 命令,其中 n 是您想要压缩的 commit 数量。这将打开一个交互式的 rebase 编辑器。 在编辑器中,将要被压缩的 commit 的行的命令从 pick 改为 squash 或 fixup。如果您想要保留该 commit 的 commit message,请使用 squash 命令。如果您不需要该 commit 的 commit message,请使用 fixup 命令。 保存并关闭编辑器。Git 将合并您指定的 commit,您将被要求编辑一个新的 commit message。您可以保留默认的 commit message,也可以编辑一个新的 commit message。 最后,使用 git push...
Mac下配置java多环境切换
Mac Java配置多环境切换 首先,您需要下载和安装Java Development Kit(JDK)的每个版本。您可以从Oracle官网下载各个版本的JDK。 安装完每个版本的JDK之后,打开终端应用程序,并输入以下命令来检查每个版本的Java是否安装成功: 1java -version 如果您看到了版本信息,说明该版本的Java已经成功安装。 然后,您需要设置每个版本的Java的环境变量。打开终端应用程序,并输入以下命令: 12export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.X.X_XXX.jdk/Contents/Homeexport...