06 2022 档案
摘要:1. 启动docker -f后面接文件,yml是配置文件,-d表示后台运行 docker-compose -f docker-compose.yml up -d docker-compose up 服务名 2. 进入docker容器里面的某个服务 首先查看docker里面开启的服务 docker p
阅读全文
摘要:class LRUCache { class DoubleList{ public int key, val; public DoubleList prev, next; public DoubleList(){} public DoubleList(int key, int val){ this.
阅读全文
摘要:介绍 RabbitMQ是使用Erlang语言开发的开源消息队列系统,基于AMQP(高级消息队列协议)来实现。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。AMQP协议更多用在企业系统内,对数据一致性、稳定性和可靠性要求很高的场景,对性能和吞吐量的要求还在其次。生产
阅读全文
摘要:Redis持久化存储分为AOF与RDB两种模式,默认开启RDB。 RDB RDB是在某个时间点将数据写入一个临时文件dump.rdb,通过dump.rdb实现数据的备份和恢复。优点:使用单独子进程来进行持久化,主进程不会进行任何 IO 操作,保证了 redis 的高性能;缺点:RDB 是间隔一段时间
阅读全文
摘要:Redis实现高可用主要有三种部署模式:主从模式、哨兵模式和集群模式。 主从模式 Redis是一主(master)多从(slave),主节点负责读写操作,从节点只负责读操作,一个主节点可以有多个从节点,而一个从节点只能有一个主节点,从节点的数据来自于主节点,实现原理是主从复制机制。主从复制机制包括全
阅读全文
摘要:缓存穿透 即黑客故意去请求缓存中不存在的数据,导致所有的请求都怼到数据库上,从而数据库连接异常。解决方法: 布隆过滤器(推荐)。内部维护一系列合法有效的key,迅速判断出请求所携带的Key是否合法有效,如果不合法,则直接返回。它不一定精确,跟哈希函数的好坏有关,当布隆过滤器说某个值存在时,这个值可能
阅读全文
摘要:在分布式系统中,一致性(Consistency)、可用性(Availability)以及分区容忍性(Partition tolerance)这个三个要素最多只能同时保证两者,而分区容忍性是基本要求,所以分布式数据系统就要在一致性和可用性之间取一个平衡。对于大部分应用,并不需要强一致性,通常会采取牺牲
阅读全文
摘要:Redis过期策略 redis过期删除策略通常有三种: 定时删除 在设置某个key的过期时间同时创建一个定时器,定时器负责监视key,过期则自动删除,虽然内存及时释放,但是十分消耗CPU资源。 定期删除 Redis默认每隔100ms就随机抽取部分设置了过期时间的key,检测这些key是否过期,如果过
阅读全文
摘要:Redis是什么 Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型有:字符串类型 散列类型 列表类型 集合类型,端口默认为6379。 Redis的特点 高性能:支持超过 100K+
阅读全文
摘要:讲得很清楚: https://blog.csdn.net/tTU1EvLDeLFq5btqiK/article/details/78693323
阅读全文
摘要:数据库中字段命名一般采用下划线分割,而java中一般采用驼峰命名,两者不一致无法自动一一对应,有如下三种解决方式。 1、取别名 在每条sql语句中取别名与java字段名项对应,这种方式很麻烦。 <select id="getAll" resultType="com.chen.entity.User"
阅读全文
摘要:通常我们创建线程池有两种方式,一是通过ThreadPoolExecutor构造函数实现(推荐);二是通过Executor框架的工具类Executors来自行创建。本文主要分析ThreadPoolExecutor的执行原理,包括线程的创建、执行、销毁。在进行详细分析之前,先介绍一下ThreadPool
阅读全文
摘要:问题: 用户第一次登录之后会得到一个cookie,在以后每次的访问过程中都会携带这个cookie,后台所有的需要登录权限的controller都要先获取cookie中的token,再使用token从session中获取用户登录信息来完成用户身份认证,所以所有的controller中都加上身份认证的代
阅读全文
摘要:用户登录成功以后服务器会为每一个用户生成一个token,然后将这个token返回给浏览器;同时为了实现分布式还需要将token存入redis缓存中,这样每个服务器都可以通过redis缓存来实现用户身份认证。用户在访问页面时请求中会携带这个token,服务器利用其进行身份验证。相应代码如下: pack
阅读全文
摘要:1. @ControllerAdvice @ControllerAdvice用来声明一些全局性的东西,最常见的是结合@ExceptionHandler注解用于全局异常的处理。他有三种用法: @ExceptionHandler注解标注的方法:表示如果Controller中任何一个方法发生异常,就会被注
阅读全文
摘要:1. 数据库建表 新建表MiaoshaUser,用于存储所有用户的用户名和密码等信息,该表有以下几个字段: id:用户名 nickname:昵称 password:密码 salt:随机字符串,用于和密码拼接计算MD5值 head:头像 register_date:注册时间 last_login_ti
阅读全文
摘要:什么问题可以用二分搜索?所有可以抽象出如下信息的题目都可以采用二分搜索: 抽象出一个自变量x,一个关于x的单调函数f(x) 题目需要求f(x)==target时x的最小值或者最大值 410. 分割数组的最大值 题目:给定一个非负整数数组 nums 和一个整数 m ,你需要将这个数组分成 m 个非空的
阅读全文