Redis 杀疯了。。。
近些年面试,Redis都杀疯了。。。面试官都喜欢通过 Redis 来考察候选人对高性能、高并发系统的理解。你可能会遇到这样的情景:面试官突然问你,Redis 为什么这么快?
又或者,问你如何在生产环境中优化 Redis 的性能。
但是如果你能从容不迫地回答,甚至能深入源码分析,那你离心仪的 Offer 就不远了。
— 1 —
面试 Redis 的门道多着呢
Redis 这玩意儿,性能强,玩法多,但要真想掌握它的精髓,光会用是不够的,得把它的底层摸透。尤其是在面试中,想要脱颖而出,你必须深入理解 Redis 的核心数据结构。动态字符串(SDS)和链表不仅是 Redis 的灵魂所在,更是面试官重点考察的内容。
如果你没仔细研究过 Redis 的源码,尤其是新版本的改进和优化,那在面试中肯定会被各种深坑绊倒。像字节跳动这种大厂,面试官考察你对新技术的掌握,绝不会轻易放过这些关键点,他们往往会从最难的地方下手,让你措手不及。
— 2 —
免费分享一套 Redis 源码解析
免费分享一套 Redis 源码解析教程,27 篇文章,直击 Redis 核心,从基础到高级,逐步揭开它的底层实现。
动态 ...
换掉ES!Redis官方搜索引擎来了,性能炸裂!
1、介绍RediSearch是一个Redis模块,为Redis提供查询、二次索引和全文搜索。要使用RediSearch,首先要在Redis数据上声明索引。然后可以使用重新搜索查询语言来查询该数据。RedSearch使用压缩的反向索引进行快速索引,占用内存少。RedSearch索引通过提供精确的短语匹配、模糊搜索和数字过滤等功能增强了
2、实现特性
基于文档的多个字段全文索引
高性能增量索引
文档排序(由用户在索引时手动提供)
在子查询之间使用 AND 或 NOT 操作符的复杂布尔查询
可选的查询子句
基于前缀的搜索
支持字段权重设置
自动完成建议(带有模糊前缀建议)
精确的短语搜索
在许多语言中基于词干分析的查询扩展
支持用于查询扩展和评分的自定义函数
将搜索限制到特定的文档字段
数字过滤器和范围
使用 Redis 自己的地理命令进行地理过滤
Unicode 支持(需要 UTF-8 字符集)
检索完整的文档内容或只是 ID 的检索
支持文档删除和更新与索引垃圾收集
支持部分更新和条件文档更新
对比 Elasticsearch如下图所示,RediS ...
因为看不惯Notepad++,国内大佬开源了Notepad--
Notepad– 是使用C++编写的轻量级文本编辑器, 简称ndd, 可以支持Window/Mac/Linux操作系统平台。
我们的目标:完成文本编辑类软件的国产可替代,重点在国产Uos/Linux系统、Mac 系统上发展。
对比其它竞品Notepad类软件而言,我们的优势是可以跨平台,支持linux mac操作系统。
鉴于某些Notepad竞品作者的不当言论,Notepad–的意义在于:
减少一点错误言论,减少一点自以为是。
Notepad–的目标:致力于国产软件的可替代,专心做软件。
您可以在这个项目提交bug或反馈问题。
效果预览windows效果图:
文件对比
最新版本下载地址:
https://gitee.com/cxasm/notepad--
ava8的Stream流太难用了?看看JDFrame
由于经常记不住stream的一些API每次要复制来复制去并且又长又臭,想要更加语意化的api,于是想到了以前写大数据Spark pandnas 等DataFrame模型时的API, 然后发现其实也存在java的JVM层的DataFrame模型比如 tablesaw,joinery
但是他们得硬编码去指定字段名,这对于有代码洁癖的人实在难以忍受,而且我只是简单统计下数据,我想在一些场景下能不能使用匿名函数去指定的字段处理去处理,于是便有了这个
一个jvm层级的仿DataFrame工具,语意化和简化java8的stream流式处理工具
1、快速开始1.1、引入依赖<dependency> <groupId>io.github.burukeyou</groupId> <artifactId>jdframe</artifactId> <version>0.0.6</version> </dependency>
1.2、案例统计每个学校的里学生年龄不为空并且年龄在 ...
SpringBoot3.x新特性,新姿势!
搞技术这么多年,说实话,我见过不少吹牛的,什么“这技术难度很高”、“你这活儿做不了”。春秋大梦!哥今天就给你们来点干货,告诉你SpringBoot 3.x是怎么回事。
别光看着流口水,拿好小本本,记好了!
1. 快速入门先整明白Spring Boot 3.x咋用,这不难,就像初学骑自行车。你先了解下基础配置和依赖,写个简单的“Hello World”出来。就是在application.properties里配置几个关键参数,启动项目,你就能在浏览器里看到“Hello Spring Boot 3.x”了。
2. 最佳实践要搞出高大上的东西,得有些规矩和套路。记住几个要点:模块化开发,配置文件分环境管理,使用注解减少样板代码。这样干,项目可维护性高,遇到锅甩起来也方便。
3. 构建系统&StartersStarters就是一套速效救心丸,帮你快速集成各种功能。想用数据库?引入spring-boot-starter-data-jpa。要整Web项目?那就spring-boot-starter-web。这些玩意儿让你少写不少配置,省下时间去摸鱼。
4. DevTools(IDEA 热部 ...
Kali中优秀Wifi渗透工具前10
这篇文章要讨论的是目前一个非常热门的话题:渗透无线网络以及如何防止无线网络被入侵。WiFi通常都是网络环境中的一个薄弱环节,因为WiFi信号可以在范围内的任何一个地方被任何一个人捕捉到,而且只要有正确的工具以及合适的软件(例如Kali Linux),很多无线路由器中存在的安全漏洞都是可以被攻击者轻松利用的。
接下来,我们将会给大家介绍目前最热门的十大WiFi入侵工具,这些工具可以帮助我们测试无线网络环境中存在的潜在安全问题。
Aircrack-ng
Aircrack是目前WEP/WPA/WPA2破解领域中最热门的工具,Aircrack-ng套件包含的工具能够捕捉数据包和握手包,生成通信数据,或进行暴力破解攻击以及字典攻击。Aircrack-ng是一款多合一整合套件,该套件大致包含下列几种工具:
-Aircrack-ng:无线密码破解
-Aireplay:生成网络数据,去客户端验证
-Airodump-ng:数据包捕捉
-Airbase-ng:配置伪造的接入点
Aircrack-ng可以在Linux、Windows和macOS上运行,并且KaliLinu ...
万能网站密码爆破测试工具-BurpCrypto
BurpCrypto是一款支持多种加密算法、或直接执行浏览器JS代码的BurpSuit插件。
一、编译
mvn package
二、为什么解决了痛点
目前越来越多的网站系统在登录接口、数据请求接口中加入各式各样的加密算法,甚至有些网站在每次请求前都动态请求加密密钥等措施,对接口渗透工作造成较大障碍。依赖于BurpSuite中的那些编码方式、Hash算法已经远远不够,通过BurpCrypto内置的RSA、AES、DES模块可应对较为简单的前端加密接口,较为复杂的加密算法,可使用ExecJS模块直接手动编写处理代码。同时为了降低ExecJS模块的上手难度,未来将推出远程JS模块仓库,支持远程加载已经测试通过的JS功能代码,方便直接调用。
三、未来开发计划
BurpCrypto可从其官方Github页面进行下载已编译好的版本,或下载源代码本地编译,然后在BurpSuite的扩展列表中添加插件,等待Output中输出BurpCrypto loaded successfully!则表示插件加载成功。
五、基础加密模块使用基础编码方式,由于不同网站开发人员的使用习惯,加密时所使用的密钥、 ...
Python破解Wifi密码教程来了
前言本文将记录学习下如何通过 Python 脚本实现 WIFI 密码的暴力破解,从而实现免费蹭网。
无图形界面先来看看没有图形界面版的爆破脚本。
WIFI爆破import pywififrom pywifi import constimport timeimport datetime# 测试连接,返回链接结果def wifiConnect(pwd): # 抓取网卡接口 wifi = pywifi.PyWiFi() # 获取第一个无线网卡 ifaces = wifi.interfaces()[0] # 断开所有连接 ifaces.disconnect() time.sleep(1) wifistatus = ifaces.status() if wifistatus == const.IFACE_DISCONNECTED: # 创建WiFi连接文件 profile = pywifi.Profile() # 要连接WiFi的名称 profile.ssid = "Tr0e& ...
canal配合MQ会有乱序的问题吗
如何实现消息有序?实现顺序消息所必要的条件:顺序发送、顺序存储、顺序消费。
在MQ模型中,顺序需由3个阶段去保障
顺序发送: 发送时保持顺序一致
顺序存储: broker 存储时保持 顺序一致
顺序消费: 消费时 保持 顺序一致
2 消息有序的两大类型有序消息,又叫顺序消息(FIFO消息),指消息的消费顺序和产生顺序相同。
如订单的生成、付款、发货,这串消息必须按序处理。
顺序消息又可分为全局有序和局部有序:
全局有序:整个MQ系统的所有消息严格按照队列先入先出顺序进行消费
局部有序:只保证一部分关键信息的消费顺序
2.1 全局顺序一个Topic内所有的消息都发布到同一Q,按FIFO顺序进行发布和消费:
落地到RocketMQ,如何保证全局有序?
为了 保证Topic全局消息有序的方式,就是将Topic配置成只有一个唯一的MessageQueue队列, 默认是4个MessageQueue。
RocketMQ中,可以在发送者发送消息时指定一个MessageSelector对象,让这个对象来决定消息发入哪一个MessageQueue。这样就可以保证一组有序的消息能够发 ...
isEmpty和isBlank的用法区别居然一半的人答不上来
也许你两个都不知道,也许你除了isEmpty/isNotEmpty/isNotBlank/isBlank外,并不知道还有isAnyEmpty/isNoneEmpty/isAnyBlank/isNoneBlank的存在, come on ,让我们一起来探索org.apache.commons.lang3.StringUtils;这个工具类.
isEmpty系列StringUtils.isEmpty()>>>是否为空. 可以看到 " " 空格是会绕过这种空判断,因为是一个空格,并不是严格的空值,会导致 isEmpty(" ")=false
StringUtils.isEmpty(null) = true
StringUtils.isEmpty(“”) = true
StringUtils.isEmpty(“ “) = false
StringUtils.isEmpty(“bob”) = false
StringUtils.isEmpty(“ bob “) ...