- 博客(156)
- 问答 (1)
- 收藏
- 关注
原创 深入解析CAS汇编层实现
volatile有什么用在java并发中,volatile是一个非常有用的关键字,由于在多处理器开发中需要保证了共享变量的可见性,也就是线程A修改一个共享变量S后,B线程能立马知道S目前处于什么值,这个原因...
2020-09-10 19:04:37
1553
2
原创 SpringBoot AOP拦截、修改请求参数
前言最近有这么个功能,由于使用了thymeleaf,多个页面遇到要使用同一个数据的问题,但是如果在每个Controller下都要向Model放数据,那么就有很多重复代码,不太优雅,所以想到了AOP,在进入方法前取到Model实例,向他增加数据即可。引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-a
2020-09-06 19:49:24
16282
1
原创 小程序WebSocket一对一聊天(可离线消息)
Gitee地址https://gitee.com/hxl495/applets-example/tree/master/wechat项目截图运行项目1.准备好AppID和AppSecret(小程序密钥)。导入并配置小程序项目目录下SpringBoot-Server目录不属于小程序部分,属于后端,无需导入。接下来打开app.js,配置服务器IP地址,如果在Tomact下部署,需要增加项目名。配置后端进入SpringBoot-Server\wechat\src\main\reso
2020-09-06 13:26:56
3641
原创 Win32汇编系列六、循环结构程序设计
前言当我们要做重复的事情时,就需要用到循环指令,在DOS时代的汇编语言中,最常用的语句就是LOOP系列指令,但是这些指令又使程序可读性差,增加了维护难度,在Win32汇编中所以增加了类似高级语言中循环语法的伪代码,本章就介绍LOOP指令和Win32中的伪指令。LOOPLOOP的循环次数保存在ECX中,每执行一次循环,ECX就自动减一,直到为0,如果为0则退出循环,LOOP后面跟着标号,程序走到LOOP指令时,判断ECX减一是否为0,如果是则继续下一行,否则跳到标号位置执行。下面是执行10次循环,每次
2020-09-01 22:35:50
574
原创 Win32汇编系列五、分支结构程序设计
程序不可能完全的顺序去执行,有时候我们会使用选择、循环结构去设计,本章记录汇编中的选择结构程序设计,也就是学习条件转移指令。条件转移指令就是根据测试的条件是否满足,如果满足,则进行转移,条件测试指令测试标志寄存器中一个或多个标志是否满足要求,如果满足要求,则控制转移到目的地址,如果不能满足要求,CPU就忽略条件转移指令并顺序执行,比如,在逻辑左移指令执行后,可以测试CF标志位判断操作数移出的最高位是否为1。示例JZJZ指令就是当ZF标志位等于1时跳转,ZF标志位是运算结果位0时该标志位等于1,否则为
2020-08-31 18:53:24
417
原创 Win32汇编系列四、逻辑运算指令
这章很简单,就是与(And)、或(OR)、非(NOT)、异或(XOR)的运算。逻辑与(And)两个数进行And运算时,当两个位都是1时,那么结果为1,否则为0,举例8 And 10,8的二进制是1000,10的二进制是1010,所以最后的结果为8(1000)。1000 (8)1010 (10)1000 (8)受影响的标志位有CF、OF、PF、SF、ZF。.386.Model Flat, StdCallOption Casemap :Noneinclude C:\masm32\i
2020-08-25 16:27:19
463
原创 Win32汇编系列三、整数算数运算符
整数算数运算指令也就是进行加、减、乘、除,相应的指令就是ADD、SUB、MUL、DIV,操作数可以是8位、16位、32位的。标志寄存器标志寄存器又称程序状态字,主要用于反映处理器的状态和ALU运算结果的某些特征及控制指令的执行,有些指令的执行会改变标志位,就比如逻辑运算指令等,不同的指令会影响不同的标志位。每个标志位具体什么意思,本章就不说了。如上面的PF,反应了运算结果中1的个数的奇偶性,如果个数为偶数,那么PF位位1,否则为0,还有如ZF反应了运算结果是否为0,如果为0,那么ZF位位1,否则为
2020-08-24 17:16:18
845
原创 Win32汇编系列二、数据传送指令
MOVMOV相当于高级语言的赋值语句,如int a= 1,把1赋值给a,1是源,a是目标。MOV的语法如下:MOV Reg/Mem,Reg/Mem/ImmReg表示寄存器,英文Register的缩写,Mem表示内存,Imm表示立即数,逗号后面的Reg/Mem/Imm都表示源操作数,逗号前面表示目的操作数,MOV的功能就是把源操作数的值传递给目的操作数。.386.Model Flat, StdCallOption Casemap :Noneinclude C:\masm32\include\
2020-08-23 10:40:25
486
原创 Win32汇编开篇、Hello World
下载MASM32地址:http://www.masm32.com/MASM32并不是微软官方发布的软件,是国外的MASM爱好者自行整理和编写的一个软件包,最高版本为11.0版,另外下载了MASM32 ,还要下载一个开发工具RadASM,RadASM下不下载都行,如果没有,需要我们手动编译(ml)、链接(exe)。有了RadASM,可以一键编译、链接、运行。注意的是,MASM32 安装只能安装在某个盘的根目录,我第一次安装在某个目录下,貌似在编译时会报错,具体记不清了。Hello Word.38
2020-08-21 21:41:34
1993
原创 你知道阻塞队列有哪些吗?
什么是阻塞队列阻塞队列也是Queue队列的一种,叫BlockingQueue,所以BlockingQueue继承了 Queue。另外Queue 和 BlockingQueue 都是在 Java 5 中加入的。public interface BlockingQueue<E> extends Queue<E> {BlockingQueue是线程安全的,所以很多时候我们可以利用这个特性,去解决业务中的问题,比如在使用生产者/消费者模式的时候,生产者只需要往队列里添加元素,消费者只
2020-08-20 21:20:53
645
原创 一套键盘如何控制多台电脑?
昨天在群里看见一个小伙伴问一套键盘如何控制多台电脑?正好勾起以前学习Windows时候的乐趣,其实这个也做过,是我的一个朋友需要,实现原理也比较简单,大概就是通过键盘钩子钩住按键,通过Socket发送到其他电脑上,其他电脑开始模拟按键,鼠标也是一样,大概会用法到以下API。啥是钩子Windows中的窗口程序是基于消息机制,事件驱动的,根据不同的消息完成不同的功能,钩子就是拦截Windows的某些消息,在这个消息到达指定窗口前会拦截下来,我们可以从中获取我们想要的信息,可以加工改变这个消息,也可以不作处理
2020-08-17 18:54:57
1842
原创 最强Markdown,tui.editor+vue
前言自建博客我觉得最痛苦的事就是选用哪个Markdown,找一个符合自己的非常不容易,当前我使用的是editor.md这款,其实非常不错,地址:https://pandao.github.io/editor.md,但是他有几个缺点,让我萌生换其他的想法。于是闲下时间重新找了一款,那就是tui.editor。tui.editor和editor.md的star都挺高,另外editor.md是国产的。下面将演示tui.editor与Vue集成。tui.editor与Vue下载npm inst
2020-08-09 12:01:41
2795
3
原创 太强了,这几位大神编写的JAVA面试、教程、框架都在这了。
下载地址关注公众号 《听风逝夜85》,回复Java即可获取下载连接。1.1000道 互联网Java工程师面试题2.Java面试3.SpringBoot经典学习笔记4.深入浅出+Java+多线程5.淘宝技术这十年6.各种架构视频...
2020-08-08 08:45:42
208
原创 不是吧,JMX啥你都不知道?
JMX简介在Java程序中,对JVM和系统检测一直是我们所需要的,但是以前开发人员必须通过一些底层的 JVM API,比如 JVMPI 和 JVMTI 等,才能监测 Java 程序运行过程中的 JVM 和系统的一系列情况,但是这种凡是需要大量的 C 程序和 JNI 调用,开发效率十分低下,为了解决这个问题,Sun 公司也在其 Java SE 5 版本中,正式提出了 Java 管理扩展(Java Management Extensions,JMX)用来管理检测 Java 程序,同时 JMX 也在 J2EE
2020-08-07 21:23:33
504
原创 自定义SpringBoot Starter,也如此简单
什么是Starter?Spring Boot由众多Starter组成,可以认为Starter是一种服务——使得使用某个功能的开发者不需要关注各种依赖库的处理,不需要具体的配置信息, 由Spring Boot自动通过classpath路径下的类发现需要的Bean,并加入相应的Bean。下面通过一个简单的例子来演示如何编写自己的starter。增加依赖新建一个SpringBoot项目后,增加如下依赖:<?xml version="1.0" encoding="UTF-8"?><pr
2020-08-07 13:44:07
223
原创 Nginx代理Tomcat后,如何优雅的获取客户端真实IP?
前言在我的博客中,我的个人博客,使用了Nginx作为反向代理,但是这就导致在Tomcat中获取客户端IP的值为127.0.0.1,由于后续需要查找IP所在地,进行数据统计,所以这个必须要解决。解决方案在这里,主要使用proxy_set_header设置Tomcat接收到的header信息。 location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded
2020-08-06 22:26:49
1286
原创 使用Nacos实现服务注册与发现
前言前几章记录了服务配置中心,使用了Nacos和Zookeeper实现,这章来记录服务的注册与发现Nacos实现微服务统一配置中心Zookeeper实现微服务统一配置中心什么是注册中心、服务注册、服务发现、?我们可以将注册中心拆解成两部分,也就是注册、中心,注册的意思也见名知意,就是将某个东西注册到某个平台上,平台管理我们注册的东西,而中心就可以看成一个统一管理信息的平台,两个部分连起来就是注册中心,也就是统一管理所有注册信息的平台。而服务注册指的是服务在启动时将自身的信息注册到注册中心中,方便
2020-08-06 12:39:20
1413
原创 动态代理会了,但JDK Proxy和CGLib有啥区别呢?
什么是动态代理?先说说什么是代理模式,代理模式就是为某个对象提供一个代理对象,并且由代理对象控制对原对象的访问。代理模式通俗来讲就是我们生活中常见的中介。而动态代理就是,在程序运行期,创建目标对象的代理对象,并对目标对象中的方法进行功能性增强的一种技术。在生成代理对象的过程中,目标对象不变,代理对象中的方法是目标对象方法的增强方法。可以理解为运行期间,对象中方法的动态拦截,在拦截方法的前后执行功能操作。动态代理有什么用?其实无论是日志框架或 Spring 框架,它们都包含了动态代理的实现代码,Jav
2020-08-06 08:35:45
535
原创 Nacos实现微服务统一配置中心
前言上一章说了使用Zookeeper实现统一配置中心,这次来说说Nacos,过程也是比较简单的。Nacos简介Nacos 致力于发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助我们快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 有以下关键特性:服务发现和服务健康监测Nacos 支持基于 DNS 和基于 RPC 的服务发现。服务提供者使用 原生SDK、OpenAPI、或一个独立的Agent TODO注册 Service 后,服务消费者可以使用DNS TOD
2020-08-05 22:32:48
2220
原创 Zookeeper实现微服务统一配置中心
为什么要使用配置中心我们在项目中通常使用配置文件配置如数据库连接,超时时间,回调地址等,如果项目里都统一放在properties文件里面,一旦我们要修改配置,那么一台服务器还好,如果有10台机器或者更多,逐一修改显的有点麻烦,当然我们有更好的解决办法,那就是使用配置中心统一配置,各个节点启动时候去配置中心拉去配置,如果要修改,各个节点也可以做到实时更新。ZookeeperZooKeeper由雅虎研究院开发,是Google Chubby的开源实现,后来托管到Apache,ZooKeeper是一个经典的
2020-08-05 12:37:46
1449
原创 论一个Nginx负载均衡的自白
前言到现在,Nginx已经占据了 Web 服务器的大壁江山,并且还在不断地增长,比如国内的 BATJ、网易、新浪等公司都可以看到它的身影。时常浏览某个网站且他发生404错误时,大部分都是Nginx的默认页面,所以对于Nginx,我们还需要继续深造一下。对于本章,将讨论一下Nginx的负载均衡策略以及原理。负载均衡策略有哪些?在此之前,先说说为什么要进行负载均衡,由于一台服务器能处理的并发数是有限的,如Tomcat,在默认情况下是150个线程来处理并发任务,如果短时间超出150人访问呢?那么此时很多
2020-08-04 20:46:36
235
原创 程序员都在用的Shiro框架,快来看看!!!
何为ShiroApache Shiro 是一个开源、轻量级的 Java 安全框架,它提供身份验证、授权、密码管理以及会话管理等功能。相对于 Spring Security,Shiro 框架更加直观、易用,同时也能提供健壮的安全性。在传统的 SSM 框架中,手动整合 Shiro 的配置步骤还是比较多的,针对 Spring Boot,Shiro 官方提供了 shiro-spring-boot-web-starter 用来简化 Shiro 在 Spring Boot 中的配置。也就是可以引入以下依赖。<
2020-08-03 15:48:55
582
原创 分分钟实践SpringBoot+Ehcache
前言以前一直用Redis做缓存,但后来慢慢了解到了Ehcache,貌似Redis的名声早就超越了Ehcache,就很少看到有人提起Ehcache以及文章,但是,还是有必要了解一下的,说不定以后会用的上。更何况Ehcache也是Java领域中比较优秀的缓存,不知道小伙伴发现没,Ehcache正着念反着念,都是 Ehcache。Ehcache简介Ehcache是一个用Java实现的使用简单、高速、线程安全的缓存管理类库,提供了用内存、磁盘文件存储,以及分布式存储等管理方案。同时Ehcache作为开放源代码
2020-07-27 15:21:37
489
1
原创 自己做一款Linux服务器文件管理工具(已开源)
前言以前向Linux上传文件的时候使用scp命令,或者通过工具如FileZille,其实比较麻烦的,当然还有如宝塔面板等工具,但是我不喜欢用宝塔这类软件(方便是方便)。一直想自己做一套,所以这两天写了一个简单的,拥有上传、下载、删除、收藏文件功能,极大方便的管理Linux服务器文件。效果gitee地址https://gitee.com/hxl495/linux-file-manager编译&运行下载代码到本地在项目目录下执行mvn package前提需要安装上mav
2020-07-17 21:20:57
2199
原创 激动的心,颤抖的手,Deepin下成功编译OpenJdk11!!!
历经沧桑在以前就想编译一下JDK,学习学习,但是困难重重,在过程中遇到软件依赖关系问题,由于Linux学的不好,迟迟没有解决,于是放弃了。但是前几天心血来潮,又想重新编译了,但是这次虽然也历经坎坷,但是还是编译成功了。我是在Deepin上完成的,不推荐Windows上,没有的可以安装虚拟机,有云服务器是Linux系统的话也行,但我没有试过。整个过程用了1天吧,用了一晚上解决环境需求,如libx11-dev、autoconf,但是编译花了不到二十分钟。首先就是下载源码了,可以到http://jdk.j
2020-07-17 12:06:27
701
原创 五分钟SpringBoot、JWT最佳实践
JWT简介JWT的全称叫Json Web Token。JSON Web Token是一个开放标准(RFC 7519),该Token被设计为紧凑且安全的,用于在各方之间作为JSON对象安全地传输信息。由于信息是经过数字签名的,因此可以进行验证和信任。客户端只需使用一次凭据即可向服务器进行身份验证。在此期间,服务器验证凭据,并向客户端返回JWT。对于以后的所有请求,客户端可以使用这个Token向服务器进行身份验证,就不需要发送用户名和密码之类的凭据。JSON Web Token由三部分组成,它们之间用圆点(
2020-07-16 16:06:50
1156
原创 如何构建应用级缓存?
什么是应用级缓存?先说一下缓存,缓存就是一组保存起来以备将来使用的东西,可以加快系统快速相应,例如CPU缓存,指得是位于CPU与内存之间的临时存储器,容量比内存小,但速度要比内存快。应用级缓存需要我们开发者通过代码来实现,那就会涉及到NoSql,现在的Redis、MongoDb、Memcache就是构建应用级缓存的重要技术。如何构建多级缓存?我们可以通过Redis集群和其他多种缓存技术实现一个多级缓存,大概处理流程如下。首先,用户的请求被负载均衡服务分发到Nginx上,接着,Nginx应用服务器读取
2020-07-15 17:15:37
353
原创 浏览器与域名解析的秘密你知道吗?
一、何为IP和域名?我们知道,在网络中,所有的设备都会被分配一个地址,两台计算机要想进行通信,最基本的就是要知道他的IP地址,而IP地址就是以点分十进制组成的四组数字,关于IP的知识还有很多,比如网络号、主机号、子网掩码,这些不在本章范围内。后来由于IP地址是一长串数字,不直观,而且用户记忆不方便,人们又发明了另一套字符型的地址方案,也就是域名,如www.baidu.com、www.jd.com,IP地址和域名是一一对应的,这份域名地址的信息存放在一个叫域名服务器(DNS,Domain name ser
2020-07-12 21:15:41
544
原创 灵魂一问,Android中有代替HashMap的方法吗?
什么是HashMap?简单的说就是用来存放映射关系数据的一个集合工具,就是一个Key,对应一个Value,通过指定Key,可以查找对应Value。他在JDK1.7和JDK1.8或以后的实现方法不同,1.7是数组+链表,1.8则是数组+链表+红黑树结构,(当链表长度大于8,转为红黑树)。当然还有很多不同的地方。为什么要代替HashMap?就像我们生活中一样,一个东西被替代,无非就是新的更好而已,而且具有旧的所有功能。那我们为什么有理由不去使用他呢?在Android中可以代替HashMap的类是Spar
2020-07-11 19:35:53
930
原创 Okhttp的自动重定向可把我害惨
前言这几天在写一个爬虫,当然http请求选择了OKHttp,但是在今天调试一个接口时候,却发生了一个小意外,很是尴尬,从中午找到晚上才发现原因。先说一下他这个后台的登录过程,首先http://xxx/login.html地址是表单提交的地址,但是他做了一些加密操作,在进入到登录页面后,通过ajax请求http://xxx/getPublicKey,用来获取RSA的指数和模数,然后又是base64、hex等加密用户的密码,最后再进行提交。下面是加密部分的一小段,摘这段的原因是我那会不知道他怎么算出最终的
2020-07-02 23:05:37
2302
原创 还在JSP中写Java代码,是何居心?
前言第一次接触jsp是在初中,在学习他后做了一个个人博客,后来一直没使用过他,原因有很多,但是今天还是想记录一篇关于JSP的,多数是因为身边的小伙伴。我记得我也是从JSP学起的,而非Servlet,先学习了那几个内置对象,后来大概学了一半吧,学Servlet去了,是因为当时跟着教程,人家在JSP中写Java代码,写各种逻辑,写各种循环,当时我因为循环时一个%>忘写了,半天没找出了,有时又是}忘写了,调试半天。后来才知道一般都是Servlet中处理好逻辑,数据传递给JSP,在JSP中使用JSTL渲染
2020-06-28 15:34:56
945
原创 重回多线程、如何向女朋友解释死锁?
一、和女朋友发生僵持怎么办?那是一个安静祥和的一天,女盆友突然对我说:“去给我买杯奶茶”,我:“行,你给我钱我在帮你买。”女朋友:“你先买回来我在给你钱。”我:“你不给钱我怎么买?”女朋友:“说的你买回来我在给你钱嘛”我:“我去抢?”女朋友:“我不管”…结果最后发生僵持,我没得到钱,她也没得到奶茶。结果怎么办?除非某一方让出资源呗。但这似乎是不可能的,形容两个线程互相等待对方释放资源,然后各自做各自的事情,但问题是两个线程都在苦苦等待,资源始终拿不到,与此同时,两个线程心里在想”mmp的
2020-06-26 17:17:24
319
原创 一起来学学Linux C(一)文件写入
一、前言很久以前接触了VB,后来一直想学C,但是一直被Win API掐住手脚,也一直在用VB去实践WinAPI,所以对C也是一知半解,在后来又转到Linux下学习Java、Android,索性也就在Linux下学习C吧。下面的这个小例子是创建文件一个,并且在文件中写入数据。二、open()函数他的功能是打开一个指定的文件,或者创建一个新文件,并获得文件描述符。 int open(const char *pathname, int flags);参数 pathname是要打开的文件路径名称,fl
2020-06-22 17:55:46
2013
原创 int与byte那些事你确定知道?
前言最近在做一个远程屏幕共享软件,功能非常单一,只能通过Android端查看电脑的实时屏幕,一开始做法是电脑端不停捕获当前屏幕截图,压缩后上传到服务器,Android不停的刷新,但是结果有点不尽人意,效果太差了。其中并没有将捕获的屏幕保存成jpg,然后发送,而是直接将BufferedImage转换成 byte[]发送,当然服务器也没有存成文件,也是使用byte[]存最新的屏幕数据,Android通过给定接口将byte[]装换成图像。这里面有个将InputStream中的数据转换成BufferedImag
2020-06-21 12:48:37
1196
原创 Tomcat源码解析五部曲终章、扩展源码
一、前言距离前几篇Tomcat源码文章已经过去两个月了,但迟迟没有写做后一篇,直到今天,中途打算写Tomcat优化或者Cookie、Session原理,最后还是放弃了,原因是这类文章非常多,不想写了。正好前几个星期开学,并且有一门JavaWeb课,所以想的是做一个简单的数据库框架,和Tomcat源码整合一下,也就是扩展Tomcat源码,让他让他轻松实现CRUD。最终可以轻松应付各种毕设、作业。但由于又去学习其他东西,所以这个也耽误了些时间。二、用法示例其实这也不算扩展吧,只是改了小小小的一部分,先来展
2020-06-16 21:57:37
472
原创 你可知Windows不规则窗口如何实现?
什么是不规则窗口?我们常见桌面应用程序窗口都是方形的,但是有时我们也能见到非方形的(圆角、椭圆等),这种窗口称之为不规则窗口,但是在我的电脑中没有找出这类的窗口,没办法展示了,(下面我们会手动创建),这种窗口一般用来做启动页,比如那些XXX管理系统等等,通常在这个界面进行一些初始化,之后跳转到主界面。除了椭圆的启动页窗口,还有圆角矩形的主界面,也是比较好看的,Windows为我们提供的API能轻松完成这类窗口的创建,其中SetWindowRgn函数为主要函数。(但这不是绝对的实现方法,我不知道目前主流的
2020-06-13 14:12:30
564
原创 Android数据序列化方案你知道多少?
0、什么是序列化借用百度百科的一句话,序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。简单说就是将对象中所有字段信息以某种形式保存到磁盘中,这个过程称之为序列化,反序列化也就是把某种形式的数据根据规则转换成对象。下面介绍几种我所使用过的方案。一、Serializable这是Java中自带的一个序列化方案,同样Android中也可以使用,
2020-06-11 22:17:28
478
原创 深入理解Redis番外转、慢查询与监视器
一、什么是慢查询日志这个功能主要记录执行时间超过给定时长的命令请求,我们可以根据这个日志来进行监控或者优化查询速度。配置文件中主要有两个和慢查询日志有关的配置。slowlog-log-slower-than这个选项指定超过多长时间的命令请求会被记录到日志上,以微妙为单位,1秒等于1000000微妙。2. slowlog-max-len他指定了服务器最多可以保存多少条慢查询日志。服务器使用先进先出的方式保存慢查询日志,如果服务器存储的慢查询日志大小超过了slowlog-max-len配置的
2020-06-08 14:56:38
205
原创 遨游WindowsAPI之电池电量获取
GetSystemPowerStatus函数我们可以通过GetSystemPowerStatus函数来获取电池的有关信息,其中包括是否正在为电池充电等,如果函数成功,则返回值为非零值。他的参数很简单,只有一个SYSTEM_POWER_STATUS结构体,返回的数据都包含在此结构体中。BOOL GetSystemPowerStatus( LPSYSTEM_POWER_STATUS lpSystemPowerStatus);SYSTEM_POWER_STATUS如下,他的ACLineStatus
2020-06-08 14:54:46
1678
原创 深入理解Redis番外传、Pipeline技术
Pipeline技术Redis 是采用TCP协议来对外提供服务,也就是说,Redis 是基于Request/Reseonse的一种一问一答的模式,请求一次响应 一次。 客户端通过Socke连接发起请求,发送一条命令给服务器,等待服务器应答,进行处理后,返回结果。在这个过程中,每个请求在命令发出后会阻塞等待Redis服务器进行处理,处理完毕后才会将结果返回给客户端。每条命令在发送与接收的过程中都会占用两个网络传输,在业务量非常庞大的情况下,是不能满足我们的需求的,这将严重影响Redis的性能。比如在做大
2020-06-07 15:42:41
262
空空如也
Linux c下char[2]为什么能输入9个字符
2021-10-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅