logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

【设计】基于redis的简单频控实现

场景:xxx时间内只能yyy次在redis里维护一个数字类型的k-v,key的生成策略与频控的维度有关,比如是用户级的频控,那么key就是一个userId;如果是总频控,那么key就是一个string常量。key的过期时间就是频控的时间间隔,在创建key的时候设置过期时间。过频控时,需要将key的计数值自增。关于自增的时机:第一种:先get再incr。第二种:先incr再get。这两种都可以,看具

#redis
【Grpc(一)】Java 何如理解StreamObserver?

刚开始接触Grpc时,桩代码里有许多StreamObserver类型,不太清楚是怎么用的,这里做一个记录。首先看下StreamObserver接口定义:public interface StreamObserver<V>{void onNext(V value);void onError(Throwable t);void onCompleted();}可以看到,这是一个泛型化的回调接

【Jackson】@JsonCreator 注解

该注解用在对象的反序列时指定特定的构造函数或者工厂方法。在反序列化时,Jackson默认会调用对象的无参构造函数,如果我们不定义任何构造函数,Jvm会负责生成默认的无参构造函数。但是如果我们定义了构造函数,并且没有提供无参构造函数时,Jackson会报错:com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot c...

【Spring(五)】AnnotationConfigApplicationContext 原理

对于main函数中使用spring的场景,有两个常见的高级容器。一个是ClassPathXmlApplicationContext,基于classpath下的xml配置文件;另一种是AnnotationConfigApplicationContext,基于java配置文件。各自的使用在这篇里有讲:https://blog.csdn.net/u010900754/article/details/..

【Java】Instrumentation热更新 premain agentmain

有两种办法:1)在java5中,可以利用jvm加载类的一个扩展点来实现类文件的动态修改。需要提供一个premain方法。缺点是只能在类文件加载且main方法执行之前修改,无法实现真正的运行时修改。2)在java6中,可以使用attach API实现真正的运行时修改。需要提供一个agentmain方法。大致原理是使用agent attach api附到待更新的jvm上,然后动态加载age...

【Java】翻页 cursor与page翻页

后端返回数据的接口需要翻页设计,防止客户端一次性请求大量数据。传统的方式是page+limit。通过page和limit可以计算出从哪里开始拿数据,以及需要拿多少条。另一种方式是cursor+limit。cursor是一个游标,可以是id或者时间戳等,总之可以唯一标识一条数据,并且存储时会按照该字段排序。每一次访问时带上前一次返回的cursor,服务端就返回cursor之后的limit条数据以及下

【Arthas】热更新

热更新是啥?不停止java应用的情况下,直接替换虚拟机内的字节码;用处?比较多的是测试环境debug。测试环境并不像本地环境一样调试方便,需要编译,打包,部署。步骤?下面介绍下如何使用Arthas实现热更新。先看一下用于测试的java程序:/*** Hello world!**/public class App{private doubl...

【docker+mysql】基于docker 配置 mysql5.7 主从 master-slave

mysql5.7,版本不同配置略有不同。首先需要按照之前介绍的mysql docker镜像 来启动两个mysql的容器。镜像通过命令拉取:docker pull mysql通过docker-compose.yml来启动容器:version: '3.1'services:master:image: mysqlenvironment:

#docker#mysql
计算机中整数的存储

计算机中如何存储int类型的变量值呢?首先,计算机的内存本质是电路板,电路板有电容器,电容器会有两个状态有电和没电,那么就可以用这两个状态来记录数据,即可以表示0和1这两个数值。这大致就是计算机中存储数据的最底层的思想。也即是说,在计算机的自己的认知中,只有0和1两个概念,他并知道2或者9.235或者“张三”这些数据。那么在现实中的各种数据就必须通过某种方式来转换成0和1的形式,最后才能存储到

【docker】环境变量 和 脚本 作用

docker的作用是提供应用的隔离环境,方便部署。dockerfile有env选项,可以让我们在生成的镜像里添加一些环境变量,这些环境变量有什么作用?可以用来作为标志,代表部署的环境的一些参数。比如说我们需要一个docker部署一个mysql。那么我们可以添加一个标识来表示这个mysql是以什么方式启动的,比如说可以通过集群方式启动,也可以通过单机方式启动,很显然这两种模式的启

#docker
    共 31 条
  • 1
  • 2
  • 3
  • 4
  • 请选择