自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

PJ码匠人

我是一个编程语言的主人,一个在Java与Python之间游走的程序员。

  • 博客(87)
  • 资源 (11)
  • 收藏
  • 关注

原创 (高阶)Redis 7 第12讲 数据双写一致性 经验篇

数据一致性的四种策略先更数据库,再更缓存先更缓存,再更数据库先删缓存,再更数据库延时双删 看门狗先更数据库,再删缓存-

2023-09-15 20:51:40 443

原创 Redis 7 第八讲 集群模式(cluster)架构篇

Redis 集群是一个提供在多个Redis节点间共享数据的程序集;Redis集群可以支持多个master不在同一个slot槽位下的多键操作支持不好,通识占位符登场集群是否完整才能对外提供服务(默认yes,不对外服务)CLUSTER COUNTKEYSINSLOT 槽位数字查询该槽位是否被占用查看该key归属槽位查看集群中节点信息;集群扩容,缩容,槽位分配,主从切换

2023-09-03 22:24:37 921

原创 Redis 7 第七讲 哨兵模式(sentinal)架构篇

哨兵巡查监控后台master主机是否故障,如果出现故障根据投票时自动将某一个从库转换成新的主库,继续对外服务。哨兵配置,异常处理,选举原理,选举流程

2023-09-02 22:58:31 648

原创 Redis 7 第六讲 主从模式(replica)架构篇

主从复制,master以写为主,Slave以读为主。当master数据变化的时候,自动将新的数据异步同步到其它slave数据库。一主二从改换门庭薪火相传自动为王断点续传主从复制原理slave启动,初次同步首次连接,全量复制心跳持续,保持通信进入平稳,增量复制从机下线,重连续传

2023-09-01 21:24:29 965

原创 从入门到进阶 之 ElasticSearch 配置优化篇

对数据的访问,绝大数情况下是对文件的访问,为了提升对文件的读写的访问效率,Linux 内核会以页大小(4KB)为单位,将文件划分为多个数据块。Lucene 的段存储到单个文件中的,这些文件都是不会变化的,利于缓存,操作系统也会把这些段文件缓存起来,以便更快的访问。为了获得最佳性能,主数据仍然存储在本地,但冷层中的索引由存储在对象存储中的可搜索快照提供支持,以实现冗余。ES 是一种密集使用磁盘的应用,在段合并的时候会频繁操作磁盘,对磁盘要求较高,当磁盘速度提升,集群的整体性能会大幅度提高。

2023-10-20 19:59:46 826

原创 从入门到进阶 之 ElasticSearch SpringData 继承篇

Spring Data 是一个用于简化数据库、非关系型数据库、索引库访问,并支持云服务的开源框架。其主要目标是使得对数据的访问变得方便快捷,并支持 map-reduce 框架和云计算数据服务。Spring Data 可以极大的简化JPA (Elasticsearch.·.)的写法,在几乎不用写实现的情况下,实现对数据的访问和操作。除了 CRUD 外,还包括如分页、排序等功能。

2023-10-18 21:08:55 681

原创 从入门到进阶 之 ElasticSearch 文档、分词器 进阶篇

一个拥有几分相似特征的文档的集合。一个索引由一个名字来标识(必须全部是小写字母),对索引文档进行索引、搜索、更新和删除(CRUD)时,使用该索引名。可以定义任意多的索引。 在一个索引中,你可以定义一种或多种类型。 一个文档是一个可被索引的基础信息单元,也就是一条数据。 相当于是数据表的字段,对文档数据根据不同属性进行的分类标识。 mapping 是处理数据的方式和规则方面做一些限制,如:某个字段的数据类型、默认值、分析器、是否被索引,都是映射里面可以设置的

2023-10-17 22:14:11 561

原创 从入门到进阶 之 ElasticSearch 节点配置 集群篇

详解 ElasticSearch Kibana 配置部署,配置文件参数修改,错误修复,用户验证,kibana安装配置,参数设置。

2023-10-16 19:46:26 1062 1

原创 从入门到进阶 之 ElasticSearch 基础语法 基础篇

elastcsearch 基础查询,文档操作,聚合查询,映射关系,分词查询,索引,范围查询,组合查询Java api 客户端查询 RestHighLevelClient,高级查询,分组/聚合/高亮/模糊查询

2023-10-09 21:57:27 231

原创 (高阶) Redis 7 第21讲 IO多路复用模型 完结篇

epoll是现在最先进的IO多路复用器,Redis、Nginx,linux中的Java NIO都使用的是epoll。一个socket的生命周期中只有一次从用户态拷贝到内核态的过程,开销小使用event事件通知机制,每次socket中有数据会主动通知内核,并加入到就绪链表中,不需要遍历所有的socket。

2023-10-07 16:36:16 793

原创 (高阶) Redis 7 第20讲 数据类型 源码篇

intLong类型整数时,Redisobiect中的ptr指针直接赋值为整数数据,不再额外的指针再指向整数,节省指针的空间开销embstr当保存的是字符串数据且字符串小于等于44字节时,embstr类型将会调用内存分配函数,只分配一块连续的内存空间,空间依次包含 redisobiect 与 sdshdr 两个数据结构,让元数据、指针和SDS是一块连续的内存区域,避免内存碎片raw。

2023-10-04 18:58:31 207

原创 (高阶) Redis 7 第19讲 缓存过期淘汰策略 大厂篇

立即删除能保证内存中的数据的最大新鲜度,保证过期键值在过期后立马删除,释放占用的内存,但是消耗cpu不友好,产生大量的性能消耗,也影响数据的读取操作。最近最少使用次数置换算法,淘汰最长时间未被使用的KEY,看KEY最后一次被使用到发生调度的时间长短,首先淘汰最长时间未被使用的KEY。最近最不常用的KEY置换算法,淘汰一定时期内被访问次数最少的KEY,看一定时间段内被访问的频率,淘汰一定时间段内被访问次数最少的KEY。对所有KEY使用LRU算法进行删除,优先删除掉最近最不常用的key,用以保证新数据。

2023-10-03 16:39:04 709

原创 (高阶) Redis 7 第18讲 RedLock 分布式锁

Redisson 实现该方案,使用“看门狗(watch dog)”定期检查 (每1/3的锁时间检查1次),如果线程还持有锁,则刷新过期时间;在算法的分布式版本中,假设有 N 个 Redis 主节点。这些节点是完全独立的,不使用复制或任何其他隐式协调系统。额外起一个线程,定期检查线程是否还持有锁,如果有则延长过期时间。但是,从运维角度看存在一个重大问题,如果加锁的Redis 机器宕机如何处理?这篇文章来看,代码逻辑基本上完成。

2023-10-02 20:38:47 188

原创 (高阶) Redis 7 第17讲 分布式锁 实战篇

Redis 除了做缓存,其他基于Redis的用法。Redis 集群保证(AP高可用),Redis 单机(C: 一致性)分布式锁的常规问题及解决方案锁过期,可重入/独占/等特性

2023-10-02 00:02:05 322

原创 (高阶) Redis 7 第16讲 预热/雪崩/击穿/穿透 缓存篇

缓存问题产生原因解决方案缓存更新方式数据更新、缓存时效性同步更新、失效更新、异步更新、定时更新缓存不一致同步更新失败、异步更新增加重试、补偿任务、最终一致缓存穿透恶意攻击空对象缓存、BloomFilter过滤器缓存击穿热点KEY失效互斥更新、随机失效、差异失效时间缓存雪崩缓存挂掉快速失败熔断、主从模式、集群模式🌹 以上分享 Redis 缓存雪崩、击穿、穿透,如有问题请指教。🌹🌹 如你对技术也感兴趣,欢迎交流。t=N7T8。

2023-09-30 17:58:38 1235

原创 (高阶) Redis 7 第15讲 布隆过滤器 BitMap篇

布隆过滤器高效插入和查询哈希算法Java 实现布隆过滤器

2023-09-23 16:46:55 104

原创 微服务项目全栈开发中问题记录

接口请求卡顿,问题追溯线程池配置错误事务配置。

2023-09-22 13:55:36 235

原创 (高阶) Redis 7 第14讲 数据统计分析 实战篇

A∩B : 属于A同时属于B的元素构成集合(SINTER key [key ....])(SINTERCARD numkeys key [key ....] [LIMIT limit])通过牺牲准确率来换取空间,对于不要求绝对准确率的场景下可以使用,因为概率算法不直接存储数据本身,通过一定的概率统计方法预估基数值,同时保证误差在一定范围内,又不储存数据可以节约内存。只是进行不重复的基数统计,不是集合也不保存数据,只记录数量而不是具体内容。多个key的合并统计,某个门户网站的所有模块的PV聚合统计。

2023-09-20 21:32:45 252

原创 (高阶)Redis 7 第13讲 数据双写一致性 canal篇

Redis和mysql数据一致性canal应用,参数配置,代码实例canal客户端

2023-09-18 22:04:44 553

原创 (高阶)Redis 7 第11讲 BIGKEY 优化篇

如何在海量数据中查询某一固定前缀的Key生产环境如何限制 keys */FLUSHDB/FLUSHALL 等危险命令,防止误删误用如何使用MEMORY USAGE多大算BigKey,如何发现,如何删除,如何处理BigKey 调优,惰性释放Lazyfree 了解吗MoreKey问题:数据库有1000万记录,如何遍历?keys * 可以吗scan,hscan,sscan,zscan ,redis-cli --bigkeys

2023-09-12 21:33:08 310

原创 (高阶)Redis 7 第10讲 单线程 与 多线程 入门篇

Redis 单线程还是多线程,Redis 如何实现多线程Redis 多路复用IO多路复用 epollIO网络模型

2023-09-08 21:30:32 478

原创 Redis 7 第九讲 微服务集成Redis 应用篇

redis 应用客户端,Jedis/Lettuce/RedisTemplate;自定义序列化应用,Springboot 配置Redis集群,集群出现主节点宕机,无法主动刷新

2023-09-08 17:08:11 362

原创 详解Redis之Lettuce实战

Lettuce 客户端的通信框架集成了 Netty 的非阻塞 IO 操作,客户端资源的设置与 Lettuce 的性能、并发和事件处理紧密相关,如果不是特别熟悉客户端参数配置,不建议在没有经验的前提下凭直觉修改默认值,保持默认配置就行。Lettuce 连接设计的时候,就是线程安全的,所以一个连接可以被多个线程共享,同时 lettuce 连接默认是自动重连的,使用单连接基本可以满足业务需求,大多数情况下不需要配置连接池,多连接并不会给操作带来性能上的提升。,如果没有响应式编程经验可以先自行了解一下,访问地址。

2023-09-07 15:44:09 653

原创 华为云云服务器评测|详解 Nacos 安装部署

解压nacos-server-2.2.3.tar.gz。启动后,默认用户名密码(nacos/nacos)使用SSH工具将包上传到服务器。使用IP:8848浏览器访问。配置权限后会多出一个权限菜单。

2023-09-07 12:10:22 836

原创 详解 Cent OS JDK 8.0 安装配置

x64 Compressed Archive 链接:https://pan.baidu.com/s/1u22eLiKrBo6ohy_A4TdYCA。ARM64 链接:https://pan.baidu.com/s/1wQ1mpKtM38CGHmZS4mHwUQ。配置JAVA_HOME,CLASS_PATH,PATH。安装包目录根据自己需求(不一定放在在: /opt )经过查证原因,确认版本问题,那就下载正确的版本。使用SSH工具将JDK包上传到服务器。使用命令解压tar包。

2023-09-07 10:31:20 212 1

原创 从入门到进阶 之 ElasticSearch Kibana 环境配置 安装篇

Elasticsearch 安装,配置文件参数修改,错误修复,用户验证,kibana安装配置,参数设置

2023-08-30 17:47:34 1492

原创 Redis 7 第五讲 事务、管道、发布订阅 过渡篇

理论可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其它命令插入,不许加塞一个队列中,一次性、顺序性、排他性的执行一系列命令。redis 事务redis 管道redis 发布订阅

2023-08-29 16:59:21 516

原创 详解排序算法(附带Java/Python/Js源码)

最后的次序就是高优先级高的在前,高优先级相同的低优先级高的在前。基数排序的平均时间复杂度为 O(nk),k 为最大元素的长度,最坏时间复杂度为 O(nk),空间复杂度为 O(n) ,是稳定排序。插入排序的一种算法,先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录"基本有序"时,再对全体记录进行依次直接插入排序。在直接插入排序的基础上,将查找方法从顺序查找改为折半查找,就是在将 将要插入到现有 有序序列的数字寻找适当插入位置的比较次数减少了。使用的映射函数能够将输入的。

2023-08-28 22:21:33 335

原创 Redis 7 第四讲 数据持久化

RDB 持久化以指定的时间间隔执行数据集的时间点快照。把某一时刻的数据和状态以文件的形式写到磁盘上,即使出现故障宕机,快照文件也不会丢失,数据的可靠性得到保证。快照文件就是RDB(Redis DataBase)文件(dump.rdb)以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录), 只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据redis重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作。

2023-08-28 16:25:59 658

原创 Redis 7 第三讲 数据类型 进阶篇

Stream的基础方法,使用xadd存入消息和xread循环阻塞读取消息的方式可以实现简易版的消息队列.位图 bitmapRedis Georedis 版本的MQHyperLogLog 是用来做基数统计的算法。

2023-08-26 16:29:17 586

原创 Redis 7 第二讲 数据类型 基础篇

👍 Redis 键🌹 引导Redis命令中心(Redis commands) -- Redis中国用户组(CRUG)Redis命令大全,显示全部已知的redis命令,redis集群相关命令,近期也会翻译过来,Redis命令参考,也可以直接输入命令进行命令检索。

2023-08-25 20:05:37 407

原创 Redis 7 第一讲 安装配置 入门篇

多AOF文件支持7.0版本中一个比较大的变化就是 aof 文件由一个变成了多个,主要分为两种类型:基本文件(base files)、增量文件( incr files),请注意这些文件名称是复数形式说明每一类文件不仅仅只有一个。在此之外还引入了一个清单文件(manifest)用于跟踪文件以及文件的创建和应用顺序(恢复)config 命令增强对于Config Set和Get命令,支持在一次调用过程中传递多个配置参数。

2023-08-19 20:27:40 419

原创 详解 先序树遍历VS递归树形结构

通常树形结构的存储,是在子节点上存储父节点的编号来确定各节点的父子关系,如图:与之对应的表数据(department):部门表结构。

2022-12-07 15:37:09 453 1

原创 详解 Neo4J 出现问题

A. JpaRepository中没有定义方法。B.该方法没有用@Query类似注解。C.@Query注解中的值为空。neo4j分页模糊查询问题。

2022-11-29 15:47:50 226

原创 详谈 springboot下bootstrap与application

SpringBoot 在加载 application.yml 后再加载 application-dev.yml,如果两个文件有相同的配置项, application.yml 的会被 application-dev.yml 的覆盖。在 java 命令中覆盖配置文件,指定了新的 port 和 profile。在 application.yml 指定使用后缀命yml文件。配置文件可以存在 4 个地方,按优先级从高到低是。在 JAVA 命令指定配置文件。

2022-10-20 17:48:40 3822

原创 k8s安裝Redis

【代码】k8s安裝Redis。

2022-09-21 11:29:50 207

原创 K8S搭建共享存储(以MySQL例)

Kubernetes 为了使应用程序及其开发人员能够正常请求存储资源,避免处理存储设施细节,引入了 PV 和 PVC。代表所有人都能连接,建议换成具体ip或ip段,如192.168.3.0/24。添加pv卷对应目录,这里创建个pv卷,则添加个pv卷的目录作为挂载点。注意:修改server里的地址为您的nfs服务地址。执行mysql.yaml。

2022-09-21 11:16:46 1126

原创 k8s 安装 基础服务

尽管 etcd 的端口也列举在控制面的部分,但你也可以在外部自己托管 etcd 集群或者自定义端口。确保您的主机和防火墙根据您的配置允许必要的流量。创建:master.sh。创建:node.sh。

2022-09-21 10:33:42 545

原创 详解 JDK 版本

JDK,Lambda ,G1,Socket,NIO,switch

2022-08-08 17:11:04 480

原创 详解 MQ 特性

例如:订单和财务信息就可以使用 mq 异步处理 使订单和财务系统之间进行解耦,如果财务系统有任何异常就不会影响用户的正常下单。线上有些链路不好压测,可以通过堆积一定量消息再放开来压测 这也是压力测试的一种手段。MQ 主要解决瞬时写压力大于应用服务能力导致信息丢失、系统奔溃等问题。当存在一对多调用时,可以发一条消息给消息系统,让消息系统通知相关系统。不要求系统之间同步反馈结果,也能保证数据的最终一致性。我们应该注意什么问题呢?需要保证数据的最终一致性。某时间数据量剧增的情况。

2022-08-08 15:43:07 508

日期_进制转换_时间戳

包含三个三个工具类,一个枚举,一个说明,可以实现常用的转换问题。时间可以根据自己需要转换,自定类型,转换方便。进制转换实现自定义任意进制转换

2020-09-09

Janusgranph连接

Janusgranph 连接方式,通过官网上的源码修改,实现类似JDBC连接,jdbc原始操作

2018-09-21

SSM 最新版

Spring 5.0 开发框架。。整合aop,包括ES常见测试用户

2018-07-13

Secure liunx客户端工具

secure 类似 xshell 工具,方便操作liunx系统,无需安装,解压即可使用

2018-06-07

ssm整合neo4j

Spring Mvc mybatis neo4j 整合,采用最新的Spring 5.0

2018-03-30

Neo4j整合ssm

SSM框架整合Neo4j图形数据库,新版包括文件上传和下载功能,,常用的基础方法

2018-03-30

SSM +Neo4J

SSM整合Neo4j, Spring 5.0 Spring data 5.0 ,技术框架

2018-03-29

Netty.jar-4.1.8

Netty.jar-4.1.8

2017-02-22

java-time-date

Java开发中常用的工具类

2017-02-21

空空如也

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

TA关注的人

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