分布式锁本质上要实现的目标就是在 Redis 里面占一个“茅坑”,当别的进程也要来占时,发现已经有人蹲在那里了,就只好放弃或者稍后再试。占坑一般是使用 setnx(set if not exists) 指令,只允许被一个客户端占坑。先来先占, 用完了,再调用 del 指令释放茅坑。死锁问题:如果逻辑执行到中间出现异常了,可能会导致 del 指令没有被调用,这样就会陷入死锁,锁永远得不到释放, 解决这个问题我们在拿到锁之后,再给锁加上一个过期时间,比如 5s,这样即使中间出现异常也可以保证 5 秒之后锁会自
ES全称为"ElasticSewrch", 是一个基于RESTful web接口, 并且构建在Apache Lucene之上的开源分布式搜索引擎。ES可以在极短的时间内存储、搜索和分析大量的数据。通常作为具有复杂搜索场景情况下的核心发动机。简单来说, ES可以帮助我们快速完成海量数据的搜索工作。
Spring Security 是 Spring 家族中的一个安全管理框架,可以和Spring Boot项目很方便的集成。Spring Security框架的两大核心功能:认证和授权。
深入用户心理的设计原则
Mybatis是如何执行一条SQL命令
所谓直连数据库,就是编写脚本让 JMeter 直接访问并操作数据库可以将接口响应的结果与直连数据库响应的结果做比对,判断接口实现是否符合预期,较之于人工访问数据库,更高效快捷
近两年人工智能发展迅猛,各种应用层出不穷,但其质量却是良莠不齐。原因在于大部分测试童鞋还在用传统的测试方式也就是通过界面和功能对人工智能软件进行测试,但是AI软件从开发到测试都很不同于传统软件,本文就以智能文本分类系统为例通过两步来介绍为何传统的测试方法不能保证AI软件的质量
内存泄露问题非常难定位,对于小工程项目来说,简单去检查代码中new和delete的匹配对数就基本能定位到问题,但是一旦代码量上升到以万单位时,仅靠肉眼检查来定位问题那就非常困难了,所以我们需要利用工具帮助我们找出问题所在。在Linux系统下内存检测工具首推Valgrind,一款非常好用的开源内存管理工具。Valgrind其实是一个工具集,内存错误检测只是它众多功能的一个,但我们用得最多的功能正是它——memcheck。