leetcode题目链接题目描述给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。示例 1:输入:head = [1,2,3,4,5], n = 2 输出:[1,2,3,5]示例 2:输入:head = [1], n = 1 输出:[]示例 3:输入:head = [1,2], n = 1 输出:[1]提示:链表中结点的数目为 sz1 <= sz <= 300 <
大key定义string类型的key值大于10kblist,set,zset,hash的成员个数超过5000list、set、zset、hash的成员数量虽然只有1000个但这些成员的value总大小为100MB(成员体积过大)带来的问题对redis的请求变慢Redis内存不断变大导致OOM,或达到maxmemory值引发写阻塞或重要key被逐出Redis集群中某个node内存远超其他node由于
1.分布式存储1.1 问题1~2亿条数据需要缓存,如何设计存储案例。1.2 解决单机单台100%不可能,肯定是分布式存储,用redis如何落地?并且在分布式缓存服务中,经常需要对服务进行节点添加和删除操作,我们希望的是节点添加和删除操作尽量减少数据-节点之间的映射关系更新(节点数的增加与减少对数据命中节点影响不大)。1.2.1 哈希取余分区2亿条记录就是2亿个k,v,单机不行必须要分布式多机,假设
最近在公司接到了一个给项目整合dubbo的任务,由于自己之前没学过dubbo,同时开发经验也不足,整整弄了两天才算是弄好,写篇文章记录一下这个过程。1.按照公司的dubbo+nacos+springboot整合文档给项目加上了相关maven依赖,启动报错,原因是依赖有冲突,通过报错信息找到了冲突的依赖,去掉之后就不报这个错了。2.启动项目之后,可以看到控制台把该连的连上,该初始化的初始化之后,又一
1内存分代垃圾回收主要是在堆没有足够的内存空间来存放新创建的对象时被触发。由于堆中的对象生命周期不同,故在进行垃圾回收时,不是所有对象都需要被回收,只是回收不再可达的对象。同时在进行垃圾回收时需要暂停应用程序,故会造成应用在暂停期间不可用,垃圾回收持续的时间越长,则应用不可用越久。而垃圾回收由于要基于对象可达性分析确定需要回收哪些对象,故持续时间与需要扫描和分析的内存区域的大小相关。基于以上分析,
1.为什么key要设置成弱引用呢?先来看看ThreadLocalMap对 key和value的构造:static class Entry extends WeakReference<ThreadLocal<?>> { /** The value associated with this ThreadLocal. */ Object value; En
4.Docker的基本组成4.1镜像(image)Docker镜像就是一个只读的模板。镜像可以用来创建Docker容器,一个镜像可以创建很多容器。它也相当于是一个root文件系统。比如官方镜像centos:7就包含了一套centos:7最小系统的root文件系统。相当于容器的“源代码”,docker镜像文件类似于Java的类模板,而docker容器实例类似于java中new出来的实例对象。4.2容
1.Docker是什么Docker是基于Go语言实现的云开源项目。Docker的主要目标是“Build, Ship and Run Any App, Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,是用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次镜像,处处运行”。Linux容器技术的出现就解决了这样的一个问题,而Docker就是在它
一、分库分表1.1 什么是分库分表分库:一个数据库分成多个数据库,部署到不同机器。分表:一个数据库表分成多个表1.2 为什么需要分库分表1.2.1 为什么需要分库如果业务量剧增,数据库可能会出现性能瓶颈,这时候我们就需要考虑拆分数据库。从这几方面来看:磁盘存储业务量剧增,MySQL单机磁盘容量会撑爆,拆分成多个数据库,磁盘使用率大大降低。并发连接支撑我们知道数据库连接是有限的。在高并发的场景下,大
一、单例模式1.模式动机对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一个系统只能有一个窗口管理器或文件系统;一个系统只能有一个计时工具或ID(序号)生成器。如何保证一个类只有一个实例并且这个实例易于被访问呢?定义一个全局变量可以确保对象随时都可以被访问,但不能防止我们实例化多个对象。一个更好的解决方法是让类自身负责保存它的唯一实例
一、select、poll、epollselect、poll、epoll都是IO多路复用的机制且本质上都是同步I/O。IO多路复用就是通过一种机制,可以同时监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知进行相应的读写操作。1.1 selectint select (int n, fd_set *readfds, fd_set *writefds, fd_set *excep
1.JDBC1.1JDBC是什么高级语言的应用程序需要特定的方式访问数据库。特定的方式:JDBC, ODBCJDBC本质上是一系列的应用程序接口(API)通过JAVA语言访问任何结构化数据库通过JDBC API写出的程序,能够将SQL语句发送到相应的任何一种数据库通过使用JDBC,开发人员可以很方便地将SQL语句传送给几乎任何一种数据库。也就是说,开发人员可以不必写一个程序访问SyBase,写另一
7.死信队列DLX:Dead-Letter-Exchange,死信交换器、死信邮箱如下情况下一个消息会进入DLX(Dead Letter Exchange)死信交换机。死信交换机和死信队列其实就是对“死”信息进行转发和存储的结构,“死”信息可能是过期、队列达到最大长度被挤出来或者消费者拒收并且不重新投递的消息。7.1消息过期MessageProperties messageProperties=n
1.RabbitMQ是什么RabbitMQ是一个广泛使用的消息服务器,采用Erlang语言编写,是一种开源的实现AMQP(高级消息队列协议)的消息中间件;RabbitMQ最初起源于金融系统,它的性能及稳定性都非常出色。AMQP协议(http://www.amqp.org),即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息
Copyright © 2005-2023 51CTO.COM 版权所有 京ICP证060544号