- 博客(48)
- 收藏
- 关注
原创 布隆过滤器,Guava实现布隆过滤器(本地内存),Redis实现布隆过滤器(分布式)
利用布隆过滤器可以快速地解决项目中一些比较棘手的问题。如网页 URL 去重、垃圾邮件识别、大集合中重复元素的判断和缓存穿透等问题。不知道从什么时候开始,本来默默无闻的布隆过滤器一下子名声大噪,在面试中面试官问到怎么避免缓存穿透,你的第一反应可能就是布隆过滤器,缓存穿透=布隆过滤器成了标配;布隆过滤器(Bloom Filter)是 1970 年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。
2023-08-07 17:17:24
1799
原创 Shell脚本编码字符串截取,从指定位置开始截取和从指定字符(子字符串)开始截取
既然需要指定起始位置,那么就涉及到计数方向的问题,到底是从字符串左边开始计数,还是从字符串右边开始计数。其中,string 表示要截取的字符,chars 是指定的字符(或者子字符串),*是通配符的一种,表示任意长度的字符串。请注意*的位置,因为要截取 chars 左边的字符,而忽略 chars 右边的字符,所以*应该位于 chars 的右侧。其中,string 是要截取的字符串,start 是起始位置(从左边开始,从 0 开始计数),length 是要截取的长度(省略的话表示直到字符串的末尾)。
2023-03-10 18:33:03
1443
原创 【Linux学习笔记】linux的系统管理:进程管理:进程监听、进程优先级相关操作;工作管理:命令后台执行、后台命令相关操作;定时任务:定时任务、循环执行定时任务
crontab 定时任务非常简单,只需执行“crontab -e”命令,然后输入想要定时执行的任务即可。不过,当我们执行“crontab -e”命令时,打开的是一个空文件,而且操作方法和 Vim 是一致的。 当“crontab -e”编辑完成之后,一旦保存退出,那么这个定时任务实际就会写入 /var/spool/cron/ 目录中,每个用户的定时任务用自己的用户名进行区分。而且 crontab 命令只要保存就会生效,只要 crond 服务是启动的。
2023-02-03 15:14:35
824
原创 chrome浏览器每次请求都会产生一个新的session的问题,chrome为了增强安全性,新增了一个SameSite的属性
问题的最直接现象就是每次请求在后台过滤器里通过request.getSession().getId(),拿到的id都是不同的,导致后面出现一些不正常的结果。或者在 Shiro的权限控制中,通过session设置token信息,在授权的时候想要通过SecurityUtils.getSubject().getSession()获取session后,通过session.getAttribute()获取不到之前session.setAttribute()设置的token信息。
2022-12-12 10:54:05
1393
原创 MySQL数据库无法远程访问,问题排查和解决方法,MariaDB数据库开启远程访问后不生效,仍无法进行远程访问
MariaDB数据库按照上述操作完成后,显示无法连接,依旧没有成功,修改配置文件/etc/mysql/mariadb.conf.d/50-server.cnf,然后找到bind-address一行,将bind-address = 127.0.0.1注释掉,再使用远程连接的方式进入mysql,问题成功解决!
2022-12-12 09:20:12
2400
1
原创 常用UOS服务器防火墙设置常用命令
默认情况下,Debian使用iptables,Ubuntu有iptables,也使用简单的ufw,在CentOS7 之前使用的是iptables,CentOS 7开始使用firewall,Centos 7前可以使用iptables命令也可以直接编辑文件/etc/sysconfig/iptables,在firewall一般都是使用命令。
2022-12-12 00:24:02
9226
1
原创 ES运维常用指令,常用的故障诊断指令,es集群健康状况、集群节点分配信息、分片分配信息、分片未分配问题诊断、集群开启密码访问
此命令可以查询从集群范围的角度检索统计信息。API 返回基本索引指标(分片数量、存储大小、内存使用情况)和有关构成集群的当前节点的信息(数量、角色、操作系统、jvm 版本、内存使用情况、cpu 和已安装的插件)。用于查看分片所处位置,包括所处哪个节点以及所处节点的 IP 地址。常见的使用场景如:索引的生命周期管理、数据流等。获取每个节点的分配情况,包括获取其分配的 IP 地址、资源占用信息、角色等。此命令一般用于查看及群众包含哪些索引。计算product 索引中的文档总数。计算集群中的文档总数。
2022-12-11 22:27:41
3430
原创 Java的Redis客户端,Jedis和Redisson客户端的使用详细说明;Jedis的基本使用;Redisson作为消息中间件、布隆过滤器、限流器、分布式锁、分布式集合、分布式远程服务;
jedis 是直连 redis server,如果在多线程环境下是非线程安全的,这个时候只有使用连接池,为每个jedis实例增加物理连接 ;Redisson 实现了分布式 和 可扩展的Java数据结构,和 Jedis 相比,功能较为简单,不支持字符串操作,不支持排序、事务、管道、分区等Redis特性。Redisson 的宗旨是促进使用者对Redis的关注分离,从而让使用者能够将精力更集中地放在处理业务逻辑上。
2022-11-23 15:27:05
2582
原创 【Elasticsearch学习笔记五】es常用的JAVA API、es整合SpringBoot项目中使用、利用JAVA代码操作es、RestHighLevelClient客户端对象
Elasticsearch软件是由 Java 语言开发的,所以也可以通过 Java API 的方式对 Elasticsearch服务进行访问;Maven项目集成Easticsearch;springboot项目集成Spring Data操作Elasticsearch;springboot项目集成bboss操作elasticsearch;1)客户端对象2)索引操作3)文档操作4)高级查询;getConfigRestClientUtil和getRestClientUtil区别;
2022-11-22 17:28:50
1467
原创 【Elasticsearch学习笔记四】DSL:term和match查询的区别;aggs聚合查询;sort排序和range查询范围;from查询页码和size返回结果;_source查询需要的属性名称
1、词条匹配:term、terms查询2、term和match的区别1)term(精确查询)2)terms(精确匹配多个或关系)3)match(分词匹配)4)match_phrase(短语匹配)3、aggregation执行聚合查询4、排序sort和查询范围range1)排序sort2)查询范围range5、from查询页码和size返回结果详情数量6、highlight高亮显示7、_source查询出需要的属性名称
2022-11-18 17:01:58
1575
原创 【Elasticsearch学习笔记三】DSL:match、match_phrase、multi_math、wildcard;must、must_not、should、filter;bool 复合查询
1、如何通过官网学习Query DSL2、match、match_phrase、multi_math查询1)match(分字符串和非字符串)2)match_phrase(不拆分匹配)3)query/multi_match(多字段匹配)4)wildcard(通配符查询)3、简单介绍:must、must_not、should、query/filter4、复合查询:bool、boosting、constant_score、dis_max
2022-11-18 15:30:40
1995
原创 【Elasticsearch学习笔记二】es的Mapping字段映射、Mapping字段常用类型、Mapping映射的创建、查看和更新、es数据迁移、ik分词器
映射(Mapping)相当于数据表的表结构。ElasticSearch中的映射(Mapping)用来定义一个文档,可以定义所包含的字段以及字段的类型、分词器及属性等等;动态映射(dynamic mapping):ElasticSearch中不需要事先定义映射(Mapping),文档写入ElasticSearch时,会根据文档字段自动识别类型。静态映射:在ElasticSearch中也可以事先定义好映射,包含文档的各个字段及其类型等,这种方式称之为静态映射;
2022-11-17 21:41:39
6298
原创 【Elasticsearch学习笔记一】es 的概述、功能、场景;es-核心概念:索引、类型、文档、映射;es倒排索引;索引操作 :创建、查看、删除;检索es基本信息;document增删改查文档;
es 的概述、功能、场景;es-核心概念:索引、类型、文档、映射;es倒排索引;索引操作 :创建、查看、删除;检索es基本信息;document增删改查文档;index索引:类似的数据放在一个索引,非类似的数据放不同索引, 一个索引也可以理解成一个关系型数据库;Type类型:(es7会逐渐删除type)Document文档:保存在某个index下,某种type的一个数据document,文档是json格式的,document就像是mysql中的某个table里面的内容,每一行对应的列叫属性;
2022-11-17 20:27:29
893
原创 Redis的客户端管理以及开发运维中可能遇到的问题(更新中)
Redis是用单线程来处理多个客户端的访问,因此作为Redis的开发 和运维人员需要了解Redis服务端和客户端的通信协议,以及主流编程 语言的Redis客户端使用方法,同时还需要了解客户端管理的相应API以及开发运维中可能遇到的问题。
2022-11-14 08:53:47
299
原创 前端学习笔记二:element-ui中表格过长内容隐藏显示、el-table点击按钮获得一行的数据、判断字符串中是否包含某个字符串
我们可以利用组件提供的一个属性::show-overflow-tooltip='true'添加该属性,会将过长的部分内容隐藏起来,并且在鼠标悬停在内容上面时,会以悬浮框的形式将所有数据显示出来;但是,这种方法有一个很大的弊端,即鼠标悬停显示的数据无法复制。为了解决这个问题,可以在表格中采用Popover 弹出框组件。用Popover 弹出框组件,我们不仅在鼠标指向内容时,在悬浮框中将所有内容显示出来,鼠标还可以一如到悬浮框,复制自己想要的内容。
2022-11-12 17:16:54
1236
原创 前端学习笔记一:element构建时间范围选择器、vue+element实现前端分页及前端搜索功能、对Element UI table中数据进行二次处理展示例如:日期格式、成功|失败
element构建时间范围选择器、vue+element实现前端分页及前端搜索功能、对Element UI table中数据进行二次处理展示例如:日期格式转换、0—1 是—否 成功—失败
2022-11-12 16:57:38
494
原创 如何使用ES做简单的时间条件过滤+模糊查询+精确匹配+关键字排除,查询 elasticsearch查询结果包含或排除某些字段、_source查询出需要的属性名称
must :返回文档必须满足该条件,且提供分数filter :返回文档必须满足该条件,但是不需要提供分数should :返回文档可以满足0个或多个条件,且提供分数must_not : 返回文档必须不满足条件,但是不需要提供分数
2022-11-12 14:42:32
6759
原创 git强制回退到历史某个版本,回退到远程仓库的某个版本,也可以回退只commit没有push的某个本地仓库版本
如果你只是想回退本地仓库代码只commit未push的代码,执行git reset --hard 指令选择的commit号为这一次commit的前一次;强制回退远程要慎重操作,这种回退操作不会保留两次版本中间的提交记录,请注意备份好数据文件;
2022-11-12 13:35:11
1688
原创 redis主从复制,复制功能是高可用Redis的基础,为满足故障恢复和负载均衡等需求把Redis数据复制多个副本部署到其他机器;如何实现redis的主从复制模式以及主从复制模式下常见的运维问题;
1)Redis通过复制功能实现主节点的多个副本。从节点可灵活地通过slaveof命令建立或断开复制流程。2)复制支持树状结构,从节点可以复制另一个从节点,实现一层层向下的复制流。Redis2.8之后复制的流程分为:全量复制和部分复制。全量复制需要同步全部主节点的数据集,大量消耗机器和网络资源。部分复制有效减少因网络异常等原因造成的不必要全量复制情况。通过配置合理的复制积压缓冲区尽量避免全量复制。3)主从节点之间维护心跳和偏移量检查机制,保证主从节点通信 正常和数据一致。
2022-11-06 17:23:11
288
原创 git合并某个分支的某次提交到目标分支,如何把分支代码合并到master,如何把master分支代码合并到自己的分支
一般项目在开发阶段,都会创建多个分支,用于不同开发阶段的版本发布如:master、dev等,之所以会有这种多分支情况,就是项目在不同的开发阶段,新的业务会对之前业务造成影响,所以建多个分支用来发布不同的迭代版本,直至一个迭代完成测试、上线。
2022-10-27 15:00:52
7184
原创 多台es服务器搭建elasticsearch集群,es单机伪集群搭建,在一台服务器上以三个不同的端口模拟三台主机完成es伪集群搭建,windows和Linux操作方法一致
1)cluster.name,必须全部相同。 2)node.name ,必须各不相同 3)http.port,设置对外服务的http端口必须各不相同 4)transport.tcp.port,设置集群节点间交互端口必须各不相同 5)cluster.initial_master_nodes,必须配置写入要加入集群的node名称 6)discovery.seed_hosts,必须配置写入要加入集群的节点的集群间的通信ip+端口
2022-10-14 18:35:55
3306
原创 Java代码中异常处理机制,如何自定义异常类以及如何构建全局异常处理;try{}catch(){}finally{}捕获并处理异常,throw和throws的区别,catch和throw两者结合使用
使用 try 和 catch 关键字可以捕获异常。try/catch 代码块放在异常可能发生的地方。Catch 语句包含要捕获异常类型的声明。当保护代码块中发生一个异常时,try 后面的 catch 块就会被检查。如果发生的异常包含在 catch 块中,异常会被传递到该 catch 块,这和传递一个参数到方法是一样。声明抛出异常是Java中处理异常的第二种方式throws +异常类型,异常类型写在方法的声明处, 此方法执行时可能会抛出的异常类型。
2022-10-10 00:03:31
1546
原创 linux和windows系统服务器CPU占用过高,服务启动后CPU占用过高如何分析问题找到占用CPU资源的java进程精确到某个线程,如何使用top命令
先用top命令查询占用内存较高的java进程 top, 再用top -H -p【进程号】找到占用线程比较高的线程top -H -p27604;windows使用资源管理器 + 微软提供的 Process Explorer 查到占用CPU资源过高的线程, 再通过jstack命令dump下来,jstack是jdk的命令所以linux和windows操作命令相同。
2022-09-30 18:01:30
1151
原创 Nacos 可以理解成服务注册中心和配置中心的组合体,它可以替换Eureka作为服务注册中心,实现服务的注册与发现;还可以替换Spring Cloud Config作为配置中心,实现配置的动态刷新
Nacos是阿里巴巴开发的配置中心和注册中心,在Nacos之前,其实还有很多相同的产品,比如注册中心:Eureka,Consul, zookeaper;配置中心:Config、apollo等,他们的功能都是单一的,要不是注册中心要不是配置中心,而Nacos不同,他同时兼有配置和注册两种服务功能;Nacos 可以理解成服务注册中心和配置中心的组合体,它可以替换Eureka作为服务注册中心,实现服务的注册与发现;还可以替换Spring Cloud Config作为配置中心,实现配置的动态刷新;
2022-09-26 01:07:48
3045
原创 try - with - resources,try-with-resources自JDK7引入,在JDK9中进行了改进,使得用户可以更加方便、简洁的使用try-with-resources
try-with-resources 是 JDK 7 中一个新的异常处理机制,实现了 java.lang.AutoCloseable 接口,其中实现了 java.io.Closeable 的所有对象;通过try()的方式来打开资源,不需要我们自己书写关闭资源的代码;通过try-with-resource语法糖声明的资源对象在执行完方法后会自动关闭;通过封装ReentrantReadWriteLock,来实现用try-with-resource的形式使用锁;
2022-09-22 21:06:24
351
原创 Spring Cloud Gateway网关微服务组件,API 网关是微服务架构中的基础组件, 搭建在客户端和微服务之间,处理一些非业务功能的逻辑,例如权限验证、监控、缓存、请求路由等;
API 网关是一个搭建在客户端和微服务之间的服务,我们可以在 API 网关中处理一些非业务功能的逻辑,例如权限验证、监控、缓存、请求路由等;API 网关就像整个微服务系统的门面一样,是系统对外的唯一入口。客户端会先将请求发送到 API 网关,然后由 API 网关根据请求的标识信息将请求转发到微服务实例。在微服务架构中,一个系统往往由多个微服务组成,而这些服务可能部署在不同机房、不同地区、不同域名下。
2022-09-19 00:08:26
892
1
原创 Redis集合,Redis Cluster是Redis的分布式解决方案,当遇到单机内存、并发、流量等瓶颈时,可以采用Cluster架构方案达到负载均衡的目的
Redis集群数据分区规则采用虚拟槽方式,所有的键映射到 16384个槽中,每个节点负责一部分槽和相关数据,实现数据和请求的 负载均衡。搭建集群划分三个步骤:准备节点,节点握手,分配槽。可以使用redis-trib.rb create命令快速搭建集群。集群内部节点通信采用Gossip协议彼此发送消息,消息类型分 为:ping消息、pong消息、meet消息、fail消息等。节点定期不断发送和 接受ping/pong消息来维护更新集群的状态。消息内容包括节点自身数据和部分其他节点的状态数据;
2022-09-12 22:46:08
1257
原创 redis键管理的通用命令,单个键、遍历键、数据库管理三个维度对一些通用命令进行介绍,keys、expire、rename、randomkey
Redis提供了面向哈希类型、集合类型、有序集合的 扫描遍历命令,解决诸如hgetall、smembers、zrange可能产生的阻塞问 题,对应的命令分别是hscan、sscan、zscan,它们的用法和scan基本类似;渐进式遍历可以有效的解决keys命令可能产生的阻塞问题,但如果在scan的过程中如果有键的变化(增加、删 除、修改),那么新增的键可能没有遍历到,遍历出了重复的键等情况,也就是说scan并不能保证完整的遍历出来所有键;
2022-09-12 09:34:56
940
原创 Redis常用API的理解和使用,单线程命令处理机制,string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)5种数据结构的特点、命令使用、应用场景
1)Redis提供5种数据结构,每种数据结构都有多种内部编码实 现。2)纯内存存储、IO多路复用技术、单线程架构是造就Redis高性能 的三个因素。3)由于Redis的单线程架构,所以需要每个命令能被快速执行完, 否则会存在阻塞Redis的可能,理解Redis单线程命令处理机制是开发和 运维Redis的核心之一。4)批量操作(例如mget、mset、hmset等)能够有效提高命令执行 的效率,但要注意每次批量操作的个数和字节数。
2022-09-04 11:52:42
816
原创 Redis持久化,Redis持久化是如何完成,如何使用Redis持久化,RDB快照式和AOF日志式两种持久化方式
Redis支持RDB和AOF两种持久化机制,Redis的持久化功能有效避免因进程退出造成的数据丢失问题,通过持久化文件进行数据的恢复;
2022-08-26 20:26:31
376
原创 redis常用命令 info persistence 指令查看持久化信息
redis常用命令 info persistence 指令查看持久化信息
2022-08-26 20:25:52
609
原创 Linux常用命令 Linux虚拟机操作指令(更新中)
Linux常用命令 用户相关命令 文件操作常用命令 mysql数据库相关命令 进程相关命令 文件编辑相关命令 查看系统资源占用
2022-08-25 17:52:01
4132
原创 mysql不能通过ip地址访问权限_解决mysql中只能通过localhost访问不能通过ip访问的问题
mysql不能通过ip地址访问权限_解决mysql中只能通过localhost访问不能通过ip访问的问题,Mysql 默认是没有开启这个权限的(只允许使用 host:localhost,或者 host:127.0.0.1),接下来我们通过命令行的方式实现手动开启该权限...
2022-08-12 17:52:59
4281
2
原创 Java中用Dom4j对XML文件进行解析,生成Document对象,获取元素(标签)信息
Java中用Dom4j对XML文件进行解析,生成Document对象,获取元素(标签)信息
2022-07-12 15:12:20
4512
原创 使用MyBatis中的ScriptRunner来执行sql文件脚本,实现启动自动部署数据库
使用MyBatis中的ScriptRunner来执行sql文件脚本,实现启动自动部署数据库
2022-07-12 11:24:37
1180
原创 HTTP请求参数中Query String Parameters、Form Data和Request Payload三者的区别,Java中分别如何接收参数
HTTP请求参数中Query String Parameters、Form Data和Request Payload三者的区别,Java中分别如何接收参数
2022-07-11 21:50:16
5506
原创 linux查看与设置文本的模式类型,换行符格式的转换set ff = unix,bad interpreter: No such file or directory
linux查看与设置文件换行符,换行符的转换,如果文件的换行符格式和系统不统一可能导致shell脚本无法正确读取文件内容
2022-07-06 21:30:34
3467
原创 Shell脚本中$0、$?、$!、$$、$*、$#、$@等的意义以及linux命令执行返回值代表意义
Shell脚本中$0、$?、$!、$$、$*、$#、$@等的意义以及linux命令执行返回值代表意义
2022-06-29 10:32:15
2314
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人