自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 收藏
  • 关注

原创 【Redis 开发】Redisson

在当下的场景中都是多台Redis服务器进行主从服务器,假定这时有一个线程访问中Redis服务器,成功获取锁,就在这时,主服务器与从服务器同步数据的时候主服务器出现故障,这时Redis哨兵会从从服务器中选出一个来当主服务器,这是锁信息并未同步,就在这时其他线程也能够得到锁进行操作,就会出现问题。原理就是在存放value的时候通过计数器机制进行重复访问,当同一个线程在此访问这个锁的时候会进行判断,是不是自己同一个线程,是的话计数器加1,同理释放锁的时候就是将该计数器的数字减1。这是可复用锁的底层原理。

2024-04-27 10:00:25 294

原创 【Redis 开发】分布式锁中的常见问题和Lua脚本

分布式锁中我们设置的过期时间:如果有一个线程获取锁之后在进行操作时,到达了锁的过期时间,之后就会有别的线程获得锁,如果这时,第一个线程执行完成后释放锁,就会将第二个锁的线程删除改进分布式锁添加释放锁的判断上述我们做了修改进行判断,但是还存在一种极端情况,当线程操作完毕需要释放锁的时候,这个时候已经判断完毕,但是由于比如说垃圾回收等问题对线程的释放操作进行阻塞,这个时候如果超过等待时间,这是还是会出现上述问题,在阻塞结束之后,会删除其他线程的锁。

2024-04-26 19:14:32 237

原创 【Redis 开发】一人一单,超卖问题(悲观锁,乐观锁,分布式锁)

就是在商品上添加版本号,一个线程查询用户的时候查询到id和版本号信息,当他需要进行修改数据的时候进行对比现在的版本号看有没有发生变化马,如果有就停止操作,并重新开始,如果没有则修改数据并将版本号加一,每个线程都执行此操作。就是在下单的时候,在订单数据库中进行查询如果该用户已经存在单子,那么会返回异常,如果在库中没有该用户,在创建新的订单,注意在创建新的订单之前需要使用悲观锁,防止多线程问题。原因:在多个集群中就会有多个jvm下的锁监视器,这些锁监视器只会监控本服务器下的悲观锁。判断库存有没有发生变化。

2024-04-26 18:00:40 621

原创 【Redis 开发】全局ID生成器

32bit,秒内的计数器,支持每秒生成2^32个不同的ID。:31bit,一秒为单位,可以使用69年。:1bit,一直为0。

2024-04-26 16:06:50 81

原创 【Redis 开发】缓存雪崩和缓存击穿

假若有很多线程进来,访问这个被击穿的数据,这是线程1先进来,拿到互斥锁,进行后面的数据库查询,写入缓存操作,其他线程在这个期间就不会拿到互斥锁,拿不到就会进行等待过一段时间重新在缓存中进行访问。在使用逻辑数据的时候同时也用到了互斥锁,但是处理不同,在线程获得互斥锁后,再创建一个新的线程来进行写入缓存的操作,这时候先返回过期的数据,其他没有拿到互斥锁的线程也是先返回过期数据。缓存雪崩是指在同一时间段,大量的缓存key同时失效或者Redis服务器宕机,导致大量请求到达数据库,带来巨大压力。

2024-04-26 10:48:17 212

原创 【Redis 开发】缓存穿透解决

当数据库中查询无果的时候,我们在对应的缓存中写入一个null,在下一次访问的时候就不会到达数据库,由缓存返回一个null。首先通过布隆过滤器,如果没有数据就拒绝访问,底层时间通过数据库中的数据通过哈希算法算出哈希值存到布隆过滤器中。缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存就永远不会生效,这些请求都会打到数据库。可能造成短期的不一致 (我在数据库插入一条数据,但是对应的缓存中存的是null)在服务层判断数据库的时候加入缓存空对象方面的技术。优点:内存占用少,没有多余的key。

2024-04-25 20:58:59 413

原创 【Redis 开发】(长篇学习)掌握Redis的用法,各种客户端下的操作

我们在作者之前的文章:快速掌握Redis安装与基本语法的基础上进行系统的学习,学习自黑马程序员的Redis实战课堂,进行学习总结,希望对大家有所帮助。

2024-04-24 18:50:09 1572

原创 【Linux开发实用篇】Webmin和宝塔

宝塔Linux面板是提升运维效率的服务器管理软件,支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库等多项管理功能。下载地址:http://download.webmin.com/download/yum/这里是将webmin的默认密码改为test,通过usr中指定的文件指令。Webmin是功能强大的基于Web的Linux/Unix管理工具。3. 修改webmin服务的端口号(默认为10000)登录:访问 http://ip:6666。当我们忘记了登录信息的时候,可以通过。

2024-04-23 19:19:51 379 1

原创 【Linux开发实用篇】备份与恢复

把需要的文件(或者分区)用TAR打包就好,下次恢复的时候进行解压。:使用对比模式,将备份的文件与已存在的文件相互对比。: 使用交互模式,在进行还原操作时,将依序询问用户。实体机无法做快照,我们可以使用备份和恢复技术。注意:目录及数据库文件不支持增量备份。可以将dump备份的文件进行恢复。:查看模式,看备份文件中的信息。

2024-04-23 18:17:57 318

原创 【Linux开发 第十四篇】日志管理

日志轮替就是把旧的日志文件移动并改名,同时建立新的日志文件,当旧的文件超出保存范围后会进行删除。:配置文件中的参数,如果配置文件中出现参数,那么日志会用日期来作为日志文件的后缀。文件中有一个logrotate文件,定时任务每天都会进行定时执行达到轮替的效果。参数,日志文件就需要进行改名,当第一次进入日志轮替的时候,当前的。日志轮替之所以可以在指定的事件备份文件,是依赖定时任务,自定义添加一个日志文件,将sshd服务的相关信息写入。:也可以将单独的日志文件的策略写到文件。:日志轮替管理,服务在文件。

2024-04-23 17:42:40 298

原创 【Linux开发 第十三篇】shell编程

shell是一个命令解释器,它为用户提供了一个向Linux内核发送请求来运行的界面级程序,用户可以通过shell来启动,挂起,停止,编写一些程序。:basename命令会删掉所有的前缀包括最后一个’/'字符,然后将字符串返回回来,同时也会将suffix后缀也删掉。对于后端开发,掌握shell编程是非常有必要的,可以对服务器进行维护,同时也可以对数据库进行操作。:最后一次执行的命令的返回值,返回0表示执行正确,反之执行错误。:这个变量表示命令行中所有的参数,将所有的参数看成一个整体。

2024-04-23 16:28:27 724

原创 【Linux开发 第十二篇】搭建JavaEE环境

测试是否安装完毕:访问 http://linuxip:8080。注意:Mysql自动给root用户设置随机密码,运行。在windows官网下载后通过文件传输到虚拟机上。,会跟mysql冲突,需要先进行删除。注意:Centos中自带的数据库。

2024-04-22 19:50:00 235 1

原创 【Linux开发 第十一篇】rpm和yum

rpm用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中,就是一种Linux中软件包的管理工具rpm -qa:查询所安装的所有的rpm软件包:查询软件包是否安装:查询软件包信息: 查询软件包中的文件:查询文件所属的软件包::删除软件包在卸载的时候可能会提示当前要卸载的包正在被其他的文件所使用;

2024-04-22 17:13:30 165

原创 【Linux开发 第十篇】网络配置和进程管理详细知识笔记

浏览器先检查浏览器缓存中有没有解析好的IP地址,如果没有,就检查DNS解析器缓存,如果有返回IP地址,这两个缓存可以理解为本地解析器缓存,当电脑第一次成功访问某一网站后,在一定的时间内,浏览器或操作系统会缓存它的IP地址(DNS解析记录)STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等。第二行表示任务数中有1个在运行,184在休眠,0个停止,0个僵死(僵死进程无效且占据内存)

2024-04-22 15:03:46 1077

原创 【Linux开发 第九篇】磁盘分区

Linux分区是用来组成整个文件系统的一部分Linux采用了一种叫载入的处理方法,它的整个文件系统中包括了一整套的文件和目录,且将一个分区和一个目录联系起来,这时要载入的一个分区将使它的存储空间开一个目录下获得分为IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘对于IDE硬盘,驱动器标识符为"hdx~",其中“hd”表明分区所在设备的类型,这里指的IDE硬盘,X表示为盘号(a基本盘,b基本从属盘,c为辅助主盘)表示分区。

2024-04-21 16:57:03 321

原创 【Linux开发 第八篇】定时任务

指定格式为:now+counttime-units,now就是当前时间time-units是时间单位这里能够是minutes(分钟)、hours(小时)、days(天)、weeks(星期)。4. 指定命令执行的具体日期,指定格式为month day(月日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年),指定的日期必须跟在指定时间的后面。2. 例如:04:00 T使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较模糊的词语来指定时间。

2024-04-21 15:49:02 677

原创 【Linux开发 第七篇】权限

w]表示可以进行修改,但是不代表可以删除文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件。一般为文件的创建者,谁创建了该文件,就自然的成为了该文件的所有者。当某个用户创建了一个文件之后,这个文件的所在组就是该用户所在的组。除文件的所有者所在的组的用户之外,系统的其他用户都是文件的其他组。[w]代表可写,对目录内创建,删除,重命名都可。通过chmod指令,可以修改文件或者目录的权限。注意:初始目录,用户需要有进入到新目录的权限。:确定所属组(同用户组的) 拥有该文件的权限。

2024-04-21 14:42:06 339

原创 【Linux开发 第六篇】Linux常用命令知识

快速掌握linux常用命令

2024-04-21 12:08:05 939

原创 【Linux开发 第五篇】vi和vim

Vim具有程序编辑的能力,可以看作是Vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。命令行模式:在这个模式中,可以提供你相关指令,完成保存等操作,输入ESC,在输入:进入到命令行模式中。正常模式:vim打开一个文档就直接进入一般模式,可以进行复制,粘贴,删除等。常用命令:wq(保存退出),q(退出),q!(强制退出,不保存)插入模式:按下字母I会进入编辑模式。Linux系统会内置Vi编辑器。

2024-04-20 14:53:44 275

原创 【Linux开发 第四篇】目录结构,远程登录

linux的文件系统是采用层级的树状目录结构,在此结构中的最上层是根目录"/",然后在此目录下再创建其他的目录。

2024-04-20 14:21:20 695

原创 【Linux开发 第三篇】vmtools安装,快照

直接拷贝一份安装好的虚拟机文件,再用VM打开文件即可使用vmware的克隆操作(克隆时要先关闭Linux系统)

2024-04-20 12:48:18 340

原创 【Linux 开发第二篇】Linux网络连接的三种模式(桥接,NAT,主机)

假定现在有在同一网段下的三个人,他们的ip为:张三:192.168.0.20李四:192.168.0.30王五:192.168.0.25这三个人就属于是在同一网段下的,这时如果使用桥接模式,张三就可以给自己的虚拟机配置地址为:192.168.0.80 使得它也在这一网段之下,但是这样会有局限性,数量配置有限使用桥接模式,虚拟系统可以和外部系统通讯,但是容易发生ip冲突。

2024-04-20 09:50:10 241

原创 【Linux 开发第一篇】如何在安装中完成自定义配置分区

如何在安装中完成自定义配置分区

2024-04-20 09:32:21 228

原创 快速掌握Swagger

快速掌握Swagger

2024-04-19 20:31:46 245

原创 java中MD5加密

MD5密码加密

2024-04-19 19:57:31 231

原创 SpringSecurity 第三篇(常用处理器,权限校验,跨域问题)

定义好权限校验方法:在@PreAuthorize注解中使用我们的方法//获取当前用户的权限//判断用户权限集合中是否存在authority为了不和原有的方法冲突我们给注解加上名字。

2024-04-19 18:52:24 560

原创 Spring Security详细学习第二篇(授权,异常处理,跨域)

快速掌握SpringSecurity中的知识

2024-04-19 17:20:15 946

原创 快速学习nginx反向代理

设置监听端口为80,server相当于一个虚拟主机,location表示前端访问的/api/,在后端访问的时候由http://localhost:8080/admin/进行访问,前端请求路径如果由后缀,反向代理中仍可以使用其后缀。底层基于反向代理来实现,在webservers中设置服务器集群,通过反向代理平均的转发给集群中的服务器。nginx中提供缓存机制,有一些数据在进行访问的时候无需访问后端服务器之间由nginx返回数据。大部分的后端都是部署在局域网中的服务器上,通过统一的接口nginx进行访问。

2024-04-18 21:30:48 822

原创 【实战开发项目小技巧】build构建实体类

注解实体类,在创建的实体类对象的时候可以通过builder()来进行实例化。在项目中给出实体类,通过注解。

2024-04-18 21:04:07 131

原创 Spring Security详细学习第一篇

本文是作者学习三更老师的Spring Security课程所记录的学习心得和笔记知识,希望能帮助到大家。

2024-04-18 19:51:13 1191

原创 【javaWeb &第七篇附篇】后端-postman工具

快速掌握postman

2024-04-16 17:18:45 146

原创 【javaWeb &第七篇】后端-Spring

快速掌握spring

2024-04-16 17:17:54 972

原创 快速掌握Spring监控(Spring Boot admin)

快速掌握SpirngBoot Admin

2024-04-15 20:42:44 1497

原创 SpringBoot整合消息中间件(ActiveMQ,RabbitMQ,RocketMQ,Kafka)

快速掌握spring整合消息中间件的知识

2024-04-15 18:45:04 1465

原创 SpringBoot整合javaMail

快速掌握springboot邮件的发送

2024-04-13 16:10:01 620 1

原创 快速掌握定时任务处理

快速掌握定时任务处理

2024-04-13 14:54:06 338

原创 快速掌握缓存技术:学习多个缓存供应商(ehcache,redis,memcached,jetcache,j2cache)

快速掌握缓存的学习

2024-04-13 10:05:55 1128

原创 windows安装Redis,Mongo,ES并快速基本掌握开发流程

基础操作

2024-04-10 19:50:41 936

原创 快速掌握数据层内置持久化方案-jdbcTemplate&SpringBoot内置数据库

导入jdbc的起步依赖,mybatis的依赖中就存在jdbc的起步依赖在配置文件中配置datasourse的相关配置;根据jdbcTemplate对象可以进行数据层操作其还可以进行一些相对应的配置操作:可以设置最大查询时间,查询最大行数,设置单次返回数(数值的不同会影响查询效率)

2024-04-09 20:55:06 299

原创 SpirngBoot开发常用知识

增进springboot知识

2024-04-09 19:40:56 1081

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除