自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 redis五种数据类型使用场景

redis自身是一个Map类型的存储方式,其中所有的数据都是采用key:value的形式存储,我们讨论的数据类型指的是存储的数据类型,也就是value部分的类型,key部分永远都是字符串。为提升zset的性能,通常将任务根据特征存储成若干个zset.例如1小时内,1天内,年度等,操作时逐渐提升,将即将操作的若干个任务纳入到1小时内处理队列中。记录下一个要处理的事件,当对比系统时间发现当然仍后到期后移除redis中的记录,并记录下一个要处理的时间。存储的数据:单个数据,是最简单的数据存储类型。

2024-06-18 17:26:34 166

原创 数据同步方法

数据同步

2024-05-31 15:56:40 273

原创 理解int,Integer,int[]

【代码】理解int,Integer,int[]

2024-05-21 14:29:30 115 1

原创 start()和run()区别

线程

2024-05-14 11:15:58 119 1

原创 java线程锁级别

2024-05-13 17:03:28 100 1

原创 双亲委派机制

双亲委派就是一个类加载器收到类加载请求,他不是自己直接加载,而是把请求交给父类的加载器,如果父类加载器也有父类加载器,就继续往上提交,赴到最顶层的类加载器,如果父类加载器完成了加载就成功返回,如果不能就给子加载器去加载,这就是双亲委派。首先JVM中有三大加载器:启动类加载器(最顶层),平台类加载器(中层),系统类加载器(下层)主要保证一个类只能被一个加载器加载。

2024-02-28 11:21:33 321

原创 HashMap是什么

(是根据关键码值(Key value)而直接进行访问的数据结构) **的 Map 接口实现,是以 key-value 存储形式存在,即主要用来存放键值对。4,取余数法(也就是数据对应的哈希值除以一个数得到的余数就是对应数组的索引,有可能取得余数一样就搞一个链表)就好比设置除数是5要存10,20这两个数都可以存在索引为o的位置,但是不能一下子存两个就生成链表存。答:会产生哈希碰撞。若 key 值内容相同则替换旧的 value,不然连接到链表后面,链表长度超过阈值 8 且数组长度超过64就转换为红黑树存储。

2024-02-28 10:52:15 417

原创 如果保证redis数据一致性

先操作redis再修改数据库:线程1发出修改,先把redis删除了再去修改mysql,此时线程2在发现redis没有数据,去找数据库,但是数据库是老数据,线程A还没完成。与其更新缓存不如直接删除更新成本高,直接删除缓存,修改数据库,当第二次访问redis拿数据如果没有,就会访问musql并且把数据缓存到redis中。先 更新数据库 再 删除缓存 (数据库指存储数据的mysql,缓存是redis里的数据)当线程1修改数据库未删除redis中数据,其他线程拿到脏数据,也能保证最终一致。

2024-02-23 22:33:01 454

原创 什么是缓存穿透、缓存雪崩、缓存击穿?

解决办法:1、设置缓存的失效时间尽量错开(比如30天+随机数),热门数据时间长点,不热门的时间短点。2、设置多级缓存,Nginx缓存+redis缓存+ehcache缓存……每一个缓存都是一个集群,相同的数据会在多种服务器进行缓存,可以100%解决缓存雪崩。解决办法:把查询的对象设为空值,也放入缓存,并设定较短的缓存过期时间,用户下次访问就会查询到null值,如果还是频繁查询这个null值。:指某一个时间段内,缓存集中的过期失效,导致大量请求过来,压力都集中到数据库。什么是缓存穿透、缓存雪崩、缓存击穿。

2024-02-23 20:42:18 341

原创 简单了解多线程安全

**因为在多线程操作数据时操作的可能是一个数据A线程拿到数据要处理还未处理完成时,B线程在A线程拿到数据后做完了处理,那么A相当于拿到了错误的数据,这样就是不完全的。1,操作系统会为线程提供一个单独的操作空间成为栈内存,其他线程无权访问,如局部变量,虽然安全性有保证但是使用范围小。A拿到数据后不出来,此时B在期间处理完成了,A之后也处理完成了,A会先查看数据是否变化,如果变化了就重新拿数据处理。如果A线程拿到数据,对数据上锁,B想拿到数据只能对锁释放。A拿到数据后上锁,B不能操作需要等待A释放锁。

2024-02-23 20:36:13 341

原创 查询慢sql

查询慢sql语句 运行后可以看到sql运行的一些详情PID,运行的sql。SELECT pg_cancel_backend(进程id);–如果查询到了结果,表示该表被锁 则需要释放锁定。如果服务器数据库反应突然巨慢,估计是有慢sql。怎样停止正在执行的慢sql。这个是查看表是否被锁。

2024-02-23 17:44:26 358

原创 数据库结构优化

尽量将表字段定义为NOT NULL约束,这时由于在MySQL中含有空值的列很难进行查询优化,NULL值会使索引以及索引的统计信息变得很复杂。对于只包含特定类型的字段,可以使用enum、set 等数据类型。数值型字段的比较比字符串的比较效率高得多,字段类型尽量使用最小、最简单的数据类型。例如IP地址可以使用int类型。尽量使用TINYINT、SMALLINT、MEDIUM_INT作为整数类型而非INT,如果非负则加上UNSIGNED。

2024-02-23 17:16:54 889

原创 为什么使用索引,什么是索引

而建立索引也就相当于重新以B+树的形式复制了一遍数据这些数据是根据你建立索引的字段的数据排列的,所以建立索引一般字段的值不要太长。首先,目前常见的建立索引使用的数据结构是B+树,数据结构就是磁盘中数据存储后逻辑上的存储位置,便于怎么找到数据。索引加速了查询的效率,但是写入的数据要根据数据结构排序,所以是牺牲了写入的效率。

2024-02-23 16:59:29 300

原创 为什么使用OpenFeign

使用了注册中心后每次远程调用都需要自己写代码根据服务名称获取实例 在去负载均衡挑选实例 然后再使用 RestTemplate发起http请求太麻烦,spring-cloud-starter-ladbalancer 负载均衡 之前使用的是ribbon新版使用这个。引入jar spring-cloud-starter-openfeign OpenFeign的包。OpenFeign是一个声明式http客户端。

2023-11-06 15:01:00 50

原创 为什么使用Nacos注册中心

轮询加权随机访问服务那几个提供者 ,可能发生其中一个服务挂了,解决办法是注册中心和服务提供者中间加一个“心跳约束”定期向注册中心报告,注册中心知道你这个提供者挂了,会踢出该服务提供者,并且推送更新到服务调用者有个铁子挂了你别去找他了给你再找个铁子。:对于单体项目可以使用本地调用查询数据库拿数据,对于分布式的项目,做远程调用使用restTemplat不够灵活无法预想到服务ip和端口,负载均衡无法实现,这就是服务治理问题。问题3,如果正在使用的服务挂了,怎么感知新的服务地址。

2023-11-02 15:32:32 105

原创 linux监听端口抓包

w 1.pcap 接收到数据不会显示写到当前文件夹1.pcap文件里。网络接口名config。port 后跟监听端口。接收到命令会显示出来。

2023-10-12 00:31:30 51

原创 java基础

字节码:就是java源代码经过虚拟机编译器编译之后的文件也就是.class文件字节码的好处:java通过字节码的方式解决了传统解释型语言执行效率低的问题,同时保留了解释性语言可移植的特点。而且字节码不专对一种特定机器,因此,无需重新编译便可以在不同的计算机上运行。Java源代码---->编译器---->jvm可执行的Java字节码(即虚拟指令)---->jvm---->jvm中解释器----->机器可执行的二进制机器码---->程序运行。

2023-05-03 15:54:06 393 1

原创 String str=‘a‘

运行时常量池是当class文件被加载完成后,java虚拟机会将class文件常量池里的内容转移到运行时常量池里,在class文件常量池的符号引用有一部分是会被转变为直接引用的,比如说类的静态方法或私有方法,实例构造方法,父类方法,这是因为这些方法不能被重写其他版本,所以能在加载的时候就可以将符号引用转变为直接引用,而其他的一些方法是在这个方法被第一次调用的时候才会将符号引用转变为直接引用的。方法区里存储着class文件的信息和运行时常量池,class文件的信息包括类信息和class文件常量池。

2023-04-29 02:58:03 139 1

原创 linux7 安装 MySQL 5.5 linux ERROR! The server quit without updating PID file (/var/lib/mysql..)

删除配置文件 重启本人linux7 安装的是 MySQL-server-5.5.49-1.linux2.6.i386.rpmmv /etc/my.cnf /etc/my.cnf.backup/usr/local/share/mysql/mysql.serverservice mysql start启动时可能还会有以下状况mysql: error while loading share...

2020-04-14 14:37:24 163

空空如也

空空如也

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

TA关注的人

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