logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

分布式锁由浅到深的转变

最简单的Redis分布式锁当某个用户执行秒杀请求的时候,把秒杀请求把(秒杀请求地址)或者(给该秒杀起个统一的名字)作为key存入SMSet,value随便写,当做锁。秒杀操作完成,把Redis的SMSet中它存的这个key删除掉。(锁过期的话也会自动删除)SMSet的作用是:如果当前添加的key已经存在,返回0,key或者value重复都不允许添加进来。在此期间如果其他用户也执行该秒杀请求,首先会

文章图片
#分布式#redis#lua
Redis数据结构底层实现

1. 字符串处理(string)我们都知道redis是用C语言写,但是C语言处理字符串和数组的成本是很高的,下面我分别说几个例子。没有数据结构支撑的几个问题及其容易造成缓冲区溢出问题,比如用strcat(),在用这个函数之前必须要先给目标变量分配足够的空间,否则就会溢出。如果要获取字符串的长度,没有数据结构的支撑,可能就需要遍历,它的复杂度是O(N)内存重分配。C字符串的每次变更(曾长或缩短)都会

文章图片
#redis
LFU算法详解

LFU算法:least frequently used,最近最不经常使用算法对于每个条目,维护其使用次数 cnt、最近使用时间 time。cache容量为 n,即最多存储n个条目。那么当我需要插入新条目并且cache已经满了的时候,需要删除一个之前的条目。删除的策略是:优先删除使用次数cnt最小的那个条目,因为它最近最不经常使用,所以删除它。如果使用次数cnt最小值为min_cnt,这个min_c

文章图片
#算法#链表#数据结构
mybatis中dao传List参数,foreach批量插入找不到参数

mybatis 中当 DAO 传入的 List 参数时,会自动将参数封装成 Map 参数,而 map中的 key 会自动用 list , value 就是你传入的 List 参数.第一种: 将 List 参数封装为 Map 然后再传入,在 XML 配置页面写上相应 key 值.第二种: 将 condition 的值修改为 list。

#mybatis#list#java
数据结构课设之校园导航系统(迪杰斯特拉算法)

需求分析介绍学校的主要地点和这些地点的特点,以及从一个地点到达另外一个地点的最短路径。系统设计理论依据根据设计要求分析校园导航系统的设计要求,掌握设计中所设计到的无向网的建立,遍历,求最短路径的基本算法,阐明设计原理方案设计根据设计要求确定导航系统中建立学校平面图的图形数据结构,查询给定建筑信息,找出任意起始点与终点的最佳路径等基本功能实现的方案,画出流程图,并对各部分功能进行说明。3.程序设计设

文章图片
#数据结构
数据结构课设之校园导航系统(迪杰斯特拉算法)

需求分析介绍学校的主要地点和这些地点的特点,以及从一个地点到达另外一个地点的最短路径。系统设计理论依据根据设计要求分析校园导航系统的设计要求,掌握设计中所设计到的无向网的建立,遍历,求最短路径的基本算法,阐明设计原理方案设计根据设计要求确定导航系统中建立学校平面图的图形数据结构,查询给定建筑信息,找出任意起始点与终点的最佳路径等基本功能实现的方案,画出流程图,并对各部分功能进行说明。3.程序设计设

文章图片
#数据结构
使用Mybatis查询的数据如何返回为long类型

1.使用ResultMap指定Long类型在查询数据的那一块的Resultmap指定为你刚才定义的那个ResultMap<resultMap id="ResultOfLongPersonId" type="java.lang.Long"><result column="person_id" property="personId" javaType="long"/></

文章图片
#p2p#蓝桥杯#linq
全排列算法的理解与实现(递归+字典序)

一、全排列的概念排列:  从n个数中选取m(m<=n)个数按照一定的顺序进行排成一个列,叫作从n个元素中取m个元素的一个排列。不同的顺序是一个不同的排列。从n个元素中取m个元素的所有排列的个数,称为排列数。全排列:  从n个元素取出n个元素的一个排列,称为一个全排列。全排列的排列数公式为时间复杂度:  n个数的全排列有n!种,每一个排列都有n个数据,所以输出的时间复杂度为O(n*n!),呈指

#算法#数据结构
Java虚拟机(JVM)面试题合集

Java内存模型我们开发人员编写的Java代码是怎么让电脑认识的首先先了解电脑是二进制的系统,他只认识 01010101比如我们经常要编写 HelloWord.java 电脑是怎么认识运行的HelloWord.java是我们程序员编写的,我们人可以认识,但是电脑不认识Java文件编译的过程程序员编写的.java文件由javac编译成字节码文件.class:(为什么编译成class文件,因为JVM只

文章图片
JVM空间分配担保机制

在发生Minor GC之前,虚拟机会先检查老年代最大可用的连续空间是否大于新生代所有对象总空间。如果这个条件成立,那么Minor GC可以确保是安全的。如果不成立,则虚拟机会查看HandlerPromotionFailure设置是否允许担保失败。如果允许,那么会继续检查老年代最大可用的连续空间是否大于历次晋升到老年代对象的平均大小。如果大于,将尝试着进行一次Monitor GC,尽管这次GC是有风

文章图片
    共 11 条
  • 1
  • 2
  • 请选择