
学习笔记
文章平均质量分 94
程序员小台
这个作者很懒,什么都没留下…
展开
-
面试官灵魂拷问:Redis 如何实现延时队列?有遇到过什么坑吗?
面试官:“你项目中的 Redis 如何实现延时队列?有遇到过什么坑吗?” 这个问题是不是很熟悉?在订单超时取消、任务调度、延迟消息等场景中,延时队列是不可或缺的组件,而 Redis 作为高性能缓存和存储中间件,自然是实现延时队列的热门选择。那么,Redis 到底有哪些方式可以实现延时队列?它们各自的优缺点是什么?哪种方式更适合你的业务场景?Redis 提供了 Keyspace Notifications 机制,可以在 key 过期或被删除时触发通知事件。原创 2025-03-29 23:30:48 · 1053 阅读 · 0 评论 -
XSS 渗透测试必备工具!XSStrike 实战演示!
XSS(跨站脚本攻击)是一种常见的前端安全漏洞,攻击者可以通过注入恶意脚本来窃取用户信息、劫持会话甚至篡改网页内容。对于 Web 开发者来说,理解 XSS 的攻击方式和防御手段至关重要。XSStrike 是一个跨站脚本检测套件,配备了四个手写解析器、一个智能负载生成器、一个强大的模糊引擎和一个速度极快的爬虫。XSStrike 不像所有其他工具那样注入有效负载并检查其工作情况,而是使用多个解析器分析响应,然后通过与模糊引擎集成的上下文分析来制作保证工作的有效负载。原创 2025-03-17 21:55:50 · 1108 阅读 · 0 评论 -
Keepalived 入门详解:高可用集群部署最佳实践!
在分布式集群中,单点故障(SPOF) 是影响系统稳定性的重要问题。Keepalived 作为一款高可用服务软件,可以有效防止集群单点故障,保障系统的高可用性。原创 2025-03-04 21:35:59 · 798 阅读 · 0 评论 -
PostgreSQL 生产环境升级指南:pg_upgrade 快速完成版本升级!
通过本文中的详细步骤,可以轻松实现 PostgreSQL 的主要版本升级,利用。原创 2025-03-02 10:24:58 · 1234 阅读 · 0 评论 -
Redis 高可用性:如何让你的缓存一直在线,稳定运行?
Redis 的高可用性不仅关乎缓存系统的稳定性,更是支撑业务连续性的关键。通过选择合适的高可用架构,我们可以让 Redis 在系统故障时仍然坚挺不倒,保证业务流畅运行。希望你通过这篇文章了解了 Redis 主从复制、Sentinel 和 Cluster 的不同高可用实现方式,找到适合自己的方案,确保 Redis 在高负载下仍能保持稳定运行!原创 2025-02-26 22:39:11 · 1303 阅读 · 2 评论 -
面试官灵魂拷问:你在使用 Redis 过程中有没有踩过坑?
今天我们来介绍一道在真实面试中,面试官问到的一个有意思的问题。Redis 作为高性能缓存和存储方案,几乎是后端开发者的必备技能。但当面试官突然问你:“你在使用 Redis 过程中有没有踩过坑?” 你是不是一时语塞,甚至有点慌?别急!Redis 虽然快,但踩坑的速度可能更快。从缓存穿透、雪崩,到内存爆炸、数据一致性问题,这些坑你踩过几个?今天我们就来聊聊,Redis 的那些“坑”,以及如何优雅避坑,让你在面试中不再被问住!原创 2025-02-23 14:58:17 · 602 阅读 · 0 评论 -
全链路优化:如何让单点登录认证接口并发性能翻倍?
本次优化从 Nginx、Redis、Tomcat、TCP、批量操作、二级缓存等多个角度入手,最终在 8核16G 环境下,将认证系统的并发能力每秒800次提升至每秒1600次,性能翻倍。原创 2025-02-22 17:31:29 · 875 阅读 · 0 评论 -
Hexo 个人博客搭建完整版笔记
Hexo 个人博客搭建完整版笔记原创 2022-07-10 23:23:07 · 2093 阅读 · 14 评论 -
数据库技术支持文档
数据库技术支持文档说明对平时工作学习遇到的数据库相关知识和技巧记录,会对一些优秀知识讲解文章的摘录,包括PostgreSQL、MySQL、Oracle等版本说明日期作者1.0初稿2021-05-28pitt1997完整文件下载数据库技术支持文档.pdf数据库技术支持文档.mdMySQLMySQL 数据怎么存储?MySQL 中的数据在磁盘上,它到底是如何进行存储的?长什么样?扫盲:存储引擎是作用在表上的。主要命令查询当前数据库支持的存储引擎mysql&原创 2021-08-24 23:31:48 · 3398 阅读 · 0 评论 -
快捷键、开发环境、命令、技巧网站收集
格式化代码:Ctrl+Alt+L删除一行:Ctrl+Y (剪切一行:Ctrl+X)原创 2020-07-13 21:14:32 · 955 阅读 · 0 评论 -
模拟CAS单点登录(跨域提交、js正则匹配)
前言前段时间,在项目上有个需求,用户希望保留原有应用的登录页面,在不动cas源码的情况下实现跨域单点登录系统,即不通过cas登录页面输入用户名和密码,通过之前系统登录页面认证然后达到单点登录效果。综合网上的帖子思路来看,要保留原有的登陆页面逻辑,实现的思路是模拟请求登陆页,先获取cas的lt及execution信息,再将这些信息放在原有登录页面的表单上,表单提交指向到cas登录验证,从而实现经过cas单点验证通过,然后成功重定向到要单点的系统。如果cas和要单点的系统部署在一个tomcat的情况那么就不原创 2020-07-03 09:28:34 · 2023 阅读 · 0 评论 -
Webshell文件上传漏洞和文件上传攻击相关梳理
Webshell简介webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门。黑客在入侵了一个网站后,通常会将asp或php后门文件与网站服务器WEB目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的。webshell常常被称为入侵者通过网站端口对网站服务器的某种程度上操作的权限。由于webshell其大多是以动态脚本的形式出现,也有人称之为网站的后门工具。文件上原创 2020-05-31 19:48:07 · 8232 阅读 · 0 评论 -
获取图片的base64编码和js压缩图片
记一次前端压缩图片笔记!转载至 https://www.cnblogs.com/xiaoliu66007/p/12708890.html<html> <body> <script> function getUrl(fil,m) { var Cnv = document.getElementById('myCanvas'); var Cntx = Cnv.getContext('2d');//获取2d编辑容器转载 2020-05-27 22:10:34 · 494 阅读 · 0 评论 -
js的number类型最大值引发的问题
前段时间,项目上突然暴露出一个问题,一个列表页面可以把数据库里面的信息正常查询并且展示,但是再对每一栏数据进行详情查看的时候,详情就展示不出,后台报错。顺着请求跟了一下代码,最终定位到问题原因。数据库资产表t_res中id字段存在值很长的数据,超过16位,超过js的number类型最大值(2的53次方,9007199254740992),如果超过这个值,那么js的number数值会出现不精确的问题。如数据库资源表id字段的值为900719925474099255(大于2的53次方),在触发资源授权展示事件原创 2020-05-27 21:55:01 · 2062 阅读 · 0 评论 -
Spring的AOP的实现原理笔记
AOP介绍AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效...原创 2019-09-11 17:06:31 · 329 阅读 · 0 评论 -
为什么Integer类型用==比较时127相等128不相等?【Integer 类型在范围[-128,127] 使用== 的比较问题】
Integer 类型在范围[-128,127] 使用==的比较问题直接上代码: public static void main(String[] args) { Integer a = new Integer(1); Integer b = new Integer(1); System.out.println(a==b); S...原创 2019-08-07 21:39:33 · 1256 阅读 · 0 评论 -
KMP字符串匹配算法
最近学习在学习KMP算法时观看了视频之后理解的更加深刻,做一个笔记!视频地址:假设现在我们面临这样一个问题:有一个文本串T,和一个模式串P,现在要查找P在T中的位置,怎么查找呢?1.暴力匹配当a与b不能匹配上的时候,那么将P这个字符串整体往右移动一格移动之后继续从这个位置开始匹配,如果不能成功,那么继续右移一格:如果用暴力匹配的思路,并假设现在文本串T匹配到 i 位置,模式串P匹配...原创 2019-07-27 15:53:40 · 445 阅读 · 0 评论 -
JVM是如何执行i = i++ + ++i的,你知道吗?
JVM是如何执行i = i++ + ++i最近比较困扰i++以及++i操作在JVM中实现的原理,直到读了下面一篇文章之后就豁然开朗!分享该文章希望对你有帮助!结果是多少?public static void main(String[] args) { int i = 0; i = i++ + ++i; System.out.println(i);}//结果输出 2...转载 2019-07-26 14:05:33 · 571 阅读 · 0 评论 -
怎么使用git命令将一个项目push到github仓库里面
使用git命令将一个项目或者文件push到github仓库里面前提条件:需要Git环境及Github账号详细步骤:1.首先在github上面新建一个仓库新建一个空仓库2.选中你想要push的项目文件右键,打开Git命令行3.首先使用git init 命令4.使用git add . 命令5.使用git commit . -m “initialize” 命令6.复制你...原创 2019-07-18 16:04:41 · 1579 阅读 · 0 评论 -
thymeleaf js方法接收多个参数响应onclick事件
今天使用thymeleaf写前端方法传递多个参数的时候,出现问题,特地记录一下。这里有一个回复评论的方法,需要获取评论的Id与被评论的作者的名字两个参数。<a th:onclick="'javascript:reply_user(\''+${comment.coid}+'\',\''+${comment.author}+'\');'" >回复</a>function...原创 2019-06-27 16:50:14 · 1754 阅读 · 0 评论 -
@RequestMapping 和 @GetMapping @PostMapping 区别
@RequestMapping 和 @GetMapping @PostMapping 区别@GetMapping是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写。@PostMapping是一个组合注解,是@RequestMapping(method = RequestMethod.POST)的缩写。...原创 2019-06-03 11:52:13 · 340 阅读 · 0 评论 -
【笔试】Java实现计算在网格中从原点到特定点的最短路径长(BFS)
计算在网格中从原点到特定点的最短路径长度实现 BFS 时需要考虑以下问题:队列:用来存储每一轮遍历得到的节点;标记:对于遍历过的节点,应该将它标记,防止重复遍历。 [[1,1,0,1], [1,0,1,0], [1,1,1,1], [1,0,1,1]]题目描述:1 表示可以经过某个位置,求解从 (0, 0) 位置到 (tr, tc) 位置的最短路径长度。public ...原创 2019-06-01 09:36:05 · 1271 阅读 · 0 评论