自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 redis扩展

再谈分布式锁在集群中,如果一个客户端申请了一把锁,然后主节点挂了,从节点还未来得及同步的时候,另一个客户端取得了锁,这就相当于两个客户端拿到了一把锁,这样不安全。redlock算法加锁时会向过半节点发送set指令,只要过半节点成功,就加锁成功,释放锁时向所有节点发送del指令。redlock会导致性能下降。过期策略redis将设置了过期时间的key单独放在一个集合里,定时遍历删除,除此之外,还会使用惰性策略删除,即当访问的时候检查一下这个key。定时扫描策略redis默认每秒进行十次扫描,扫

2021-06-03 15:14:02 119

原创 redis源码

字符串redis的字符串结构是SDS,是一个自带长度信息的字节数组struct SDS<T> { T capacity; //数组容量 1byte T len; //数组长度 1byte byte flags; //特殊标志位 1byte byte[] content; //数组内容}SDS使用的泛型T,是为了根据属性的大小来判断使用什么类型,redis对内存做了极致的优化。字符串长度不得超过512Membstr与raw

2021-06-03 15:13:26 137

原创 redis集群

主从同步当主节点挂掉之后,从节点过来接管。CAP原理:当网络分区发生时,一致性与可用性两难全一致性、可用性、分区容忍性网络分区:分布式系统的节点发生网络断开的情况最终一致redis主从数据是异步同步的,并不满足一致性,但满足可用性,即使网络分区,主节点也会支持修改。redis保证最终一致性,即从节点会努力追赶主节点,使数据保持一致。主从同步与从从同步从从同步是为了减轻主节点的压力。增量同步redis的同步是指令流,主节点会把对自己状态产生影响的指令记录到本地的内存buf

2021-06-03 15:12:15 91

原创 redis原理

Redis的单线程依赖于多路复用,即事件轮询以达到并发。非阻塞IO事件轮询在执行某条指令时,若这段时间内没有事件到来,处于阻塞状态,最多等待timeout事件,就立即返回,若有事件到来,挨个处理相应事件。处理完了继续返回轮询指令队列与响应队列定时任务redis的定时任务会记录在一个被称为“最小堆”的数据结构中,,最快要执行的任务放在最上面,每个事件轮询周期,将到时间点的任务进行处理,然后记录距离最近的任务的时间间隔,这个就是未来的timeout。通信协议------使用了文本协议RESP—r

2021-06-03 15:10:24 61

原创 redis基础

五大基础结构Stringredis的字符串是动态字符串,是可以修改的,类似于ArrayList,采用预分配冗余空间的方式减少内存的频繁分配。小于1M扩容加倍,大于则是多扩1M知识点:键值对、批量键值对、过期与set扩展、计数list链表而非数组,列表弹出最后一个元素,内存被回收。知识点:队列(lpop)、栈(rpop)、lindex、ltrim、快速列表(ziplist组成quicklist)hash无序字典,与HashMap类似,数组加链表。rehash采用渐进式rehash策

2021-06-03 15:09:41 87

原创 Mybatis中的动态sql与常用的语法

动态sql动态sql常用的主要有以下几种:1、if动态SQL语句使用if动态语句进行空值判断,可以应用于多条件查询,不确定会有哪些查询条件的时候。 <if test="isCheck != null"> isCheck = #{isCheck}, </if>2、foreach动态SQL语句主要用于当要查询...

2019-09-20 16:38:39 549

原创 xxl-job新增执行器

上篇文章大体介绍了如何将xxl-job在自己的电脑上部署好,这篇用来介绍如何去新增一个执行器,也就是将spring项目整合,可以使用xxl-job进行执行。一、新建一个springboot项目。新建一个项目。选中spring web、Mysql Driver、JDBC API、Mybatis Framework等依赖,后面就是点击确定,然后成功创建项目。配置项目首先引入xxl依赖。...

2019-09-20 13:57:07 13674 1

原创 xxl-job配置安装

第一步、首先将大佬的代码从git上拉下来git地址第二步、将工程拉进IDEA部署好。第三步、将代码中的sql语句执行一遍,会生成七张表如下。啊,对了SQL语句在这里第四步、将工程中xxl-job-admin下的配置文件中的数据库地址、用户名、密码修改为你自己的。其他的可以不用动,这样就可以将这个xxl-job启动起来了。第六步、首先启动xxl-job-admin下的启动文件Xx...

2019-09-20 10:53:05 1831

原创 new String与toString的区别(踩过的大坑)

在见到他们两个之后我一度以为他们两个是一样的,但是果真掉进了大坑。区别如下:toString是调用的对象本身的,也就是继承或者重写的object.toString()方法,如果是byte[] b,那么返回的是b的内存地址。new String()是使用虚拟机默认的编码base返回对应的字符。...

2019-09-17 11:11:00 1235

原创 有关MySQL的一些整理

MySQL的一些常用操作在日常的使用中我经常的会忘记一些SQL语句的使用方法,这里就整理了一下,方便以后使用。创建表create table person(id bigint(8) not null AUTO_INCREMENT comment '主键id',person_name varchar(32) not null comment '姓名',person_age int(4)...

2019-09-04 14:52:00 92

转载 cron表达式及其验证方法

一、表达式组成Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式:都使用数字,但还可以出现如下特殊字符,它们的含义是:(1) :表示匹配该域的任意值,假如在Minutes域使用, 即表示每分钟都会触发事件。(2) ? :只能用在DayofMonth和DayofWeek两个域。因为DayofMonth和 DayofWeek...

2019-09-01 11:50:42 3757

空空如也

空空如也

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

TA关注的人

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