首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

centos缓存

今天操作服务器的时候,一不小心点了个把某文件目录添加到压缩包的命令。然后由于这个文件夹很大,所以压缩包占了很大的空间。...我就kill掉了zip进程,没想到磁盘空间还是被占用了,因此我就采取了清理缓存的办法。 切换到root用户下,根据需要,执行下面三个命令之一,就可以清除缓存。...To free pagecache://释放页缓存 echo 1 > /proc/sys/vm/drop_caches To free reclaimable slab objects (includes...dentries and inodes)://释放inode和目录树缓存 echo 2 > /proc/sys/vm/drop_caches To free slab objects and pagecache...://包括1和2,即释放所有缓存 echo 3 > /proc/sys/vm/drop_caches 得出结论,一定要先kill进程,再删文件,不然,文件句柄没有被释放,进程还会疯狂占疯狂占用空间!

4.8K30
您找到你想要的搜索结果了吗?
是的
没有找到

Java中使用redisTemplate操作缓存

背景 最近的项目中,有一个需求是对一个很大的数据库进行查询,数据量大概几千万条。但同时对查询速度的要求也比较高。...我使用的时候是自己在后端实现的分页。 在这种情况下应用缓存实属无奈之举。讲道理,优化应从底层开始,自底而上。上层优化的方式和效率感觉都很有局限。...所以,此时使用redis缓存。减少请求数据库的次数。将匹配的数据一并存入数据库。这样只有第一次查询时耗费长一点,一旦查询完成,用户点击下一页就是毫秒级别的操作了。...接受3个参数,分别是缓存的键名,计数事件,要移除的值。计数事件可以传入的有三个值,分别是-1、0、1。...当keyHash键中已经存在时,则不会写入任何数据,只有Hash键中不存在这个key时,才会写入数据。

2.2K20

当@Transactional遇到@CacheEvict,会不会先缓存呢?

点击蓝字关注不迷路 有bug吗 如上图所示,当@Transactional 遇到@CacheEvict,是先缓存后更新数据库,还是先更新数据库后更新缓存呢?...大家都知道,也缓存后更新数据库,会不定时出现脏数据的哦 思考 首先,@Transactional是给当前方法添加事务支持的。...Debug 寻找真相 首先,执行清除缓存的是org.springframework.cache.Cache#evict方法,此处又是使用 redis 作为缓存的提供者,所以清除缓存时,必然会调用...先清除缓存,然后事务还没有提交之前,服务器就收到了新的用户请求,然后,发现缓存中没有数据,则去数据库中获取数据(事务还没有提交则获取到旧值),同时将获取的数据添加到缓存中。...引用阿里巴巴 Java 开发手册的一句话: image.png 缩小事务范围 方案 2:修改 AOP 执行顺序 如果先提交事务,再清除缓存,不是一样可以解决问题。

1.1K20

java中构建高效的结果缓存

缓存是现代应用服务器中非常常用的组件。除了第三方缓存以外,我们通常也需要在java中构建内部使用的缓存。那么怎么才能构建一个高效的缓存呢? 本文将会一步步的进行揭秘。...虽然这样的设计能够保证程序的正确执行,但是每次只允许一个线程执行calculate操作,其他调用calculate方法的线程将会被阻塞,多线程的执行环境中这会严重影响速度。...从而导致使用缓存可能比不使用缓存需要的时间更长。...上面我们还要考虑一个缓存污染的问题,因为我们修改了缓存的结果,如果在计算的时候,计算被取消或者失败,我们需要从缓存中将FutureTask移除。...本文的例子可以参考https://github.com/ddean2009/learn-java-concurrency/tree/master/MemoizedCalculate

1.5K30

缓存的姿势不对,真的会出生产bug哦

原来是对方点某个页面按钮的时候一直提示错误,不能正常进行业务了。 常规操作 和以往一样,我查起了生产log,发现是数据库锁表了。...没办法只能看那个时间段所有的log,发现有一行“map缓存中有数据,可能多人同时操作”。...查下代码,发现代码中为了防止同一条数据多人同时操作,加了map作为缓存,数据记录的PK作为key和value。...如果公司有代码review的环节的话会好很多,如果没有review,那么写完代码后最好自己review一遍。...否则,万一出现类似的问题真的有点尴尬,正如题目所说“缓存的姿势不对,真的会出生产bug哦”。 希望你我今后都能避免这种情况的发生。

39310

java map 缓存_缓存用于

缓存 什么是缓存? 平常的开发项目中,多多少少都会使用到缓存,因为一些数据我们没有必要每次查询的时候都去查询到数据库。...缓存的使用场景: Java应用中,对于访问频率高,更新少的数据,通常的方案是将这类数据加入缓存中,相对从数据库中读取,读缓存效率会有很大提升。 集群环境下,常用的分布式缓存有Redis等。...但在某些业务场景上,可能不需要去搭建一套复杂的分布式缓存系统,单机环境下,通常是会希望使用内部的缓存(LocalCache)。...使用map缓存 方案: 基于ConcurrentHashMap实现数据缓存,实现线程安全要求 SoftReference:当内存不够的时候,GC会回收SoftReference所引用的对象 SoftReference...final ConcurrentHashMap> cache = new ConcurrentHashMap(); /** * 构造函数中

1.1K20

缓存 Python 中使用缓存

本文大致上是基于 caching-in-python 这篇文章的翻译 缓存操作 缓存操作主要有两种类型。缓存如浏览器缓存,服务器缓存,代理缓存,硬件缓存工作原理的读写缓存。...如果请求的数据缓存上可用,那么他就是一个Cache hit。 [Cache hit] 如果没有命中缓存。就是Cache miss,则需要去DB中取数据。...一旦缓存满了,我们只能通过删除已经缓存中的数据来为新数据腾出空间。同样,这不能是一个猜谜游戏,我们需要最大化的利用率来优化输出。...LRU的实现 缓存基本上是一个散列表。每个数据进入它是散列和存储使它可以访问 o(1)。 现在我们如何剔除最近使用次数最少的项目,到目前为止我们只有一个散列函数和它的数据。...[LRU实现] LRUpython中的实现 手动造轮子法 使用一个双端队列实现 LRU 机制,真实的数据存在一个字典当中。 队列空,插入元素时。

3.8K40

字符串JVM的哪里

关于字符串JVM的哪里 字符串对象JVM中可能有两个存放的位置:字符串常量池或堆内存。...使用常量字符串初始化的字符串对象,它的值存放在字符串常量池中; 使用字符串构造方法创建的字符串对象,它的值存放在堆内存中; 另外String提供了一个API, java.lang.String.intern...(),这个API可以手动将一个字符串对象的值转移到字符串常量池中 JDK1.7之后虽然字符串常量池也转换到了堆中,但是其实字符串常量池是堆中独立开辟的空间,我们创建一个普通字符串和一个字符串对象结构类似于下图...代码验证 这里其实我们可以看出一些intern()的特性了. intern源码分析 我们来看intern方法的实现,intern方法的底层是一个native方法,Hotspot JVM里字符串常量池它的逻辑注释里写得很清楚...总结 Java应用恰当得使用String.intern()方法有助于节省内存空间,但是使用的时候,也需要注意,因为StringTable的大小是固定的,如果常量池中的字符串过多,会影响程序运行效率。

4.3K30

java http缓存

HTTP/1.1中缓存的目的是为了很多情况下减少发送请求,也即直接返回缓存;同时许多情况下可以不需要发送完整响应。...缓存如何工作 所有的缓存都用一套规则来帮助他们决定什么时候使用缓存中的副本提供服务(假设有副本可用的情况下);一些规则在协议中有定义(HTTP协议1.0和1.1),一些规则由缓存的管理员设置(浏览器的用户或者代理服务器的管理员...); 一般说来:遵循以下基本的规则(不必担心,你不必知道所有的细节,细节将随后说明) 如果响应头信息:告诉缓存器不要保留缓存缓存器就不会缓存相应内容; 如果请求信息是需要认证或者安全加密的,相应内容也不会被缓存...一个缓存的副本如果含有以下信息:内容将会被认为是足够新的 含有完整的过期时间和寿命控制头信息,并且内容仍在保鲜期内; 浏览器已经使用过缓存副本,并且一个会话中已经检查过内容的新鲜度; 缓存代理服务器近期内已经使用过缓存副本...,并且内容的最后更新时间在上次使用期之前; 够新的副本将直接从缓存中送出,而不会向源服务器发送请求; 如果缓存的副本已经太旧了,缓存服务器将向源服务器发出请求校验请求,用于确定是否可以继续使用当前拷贝继续服务

1.2K80

Java本地缓存

前言 缓存是计算机系统中一种常见的数据存储技术。它用于临时存储经常访问的数据,以提高系统的性能和响应速度。 计算机系统中,数据通常存储较慢的主存(RAM)中。...Map Java中,实现本地缓存通常使用key/value形式的数据结构,可以选择使用Map集合来作为存储容器。...Guava Cache(也称为Guava缓存)是Google开源的一个Java库,用于实现本地缓存。它是Guava项目的一部分,是Google对Java集合框架的扩展和增强。...Caffeine是Guava Cache的基础上做一层封装,性能有明显提高,二者同属于内存级本地缓存。...Ehcache是一种广泛使用的开源Java分布式缓存。主要面向通用缓存,Java EE和轻量级容器。

34021

实战演练:洞若观火--治堵之道

幸运的是,Oracle 数据库产品非常成熟,有完善的日志体系、运行数据跟踪记录、全面的数据字典,可以帮助我们遇到问题时,有迹可循有据可查。...处理这类问题时,千头万绪的会话和数据中,理清思路正本源,从根本上治理堵塞的问题是最重要的,这也是本文想要阐述的一个核心观点:洞若观火--治堵之道源。...1 观察:把问题说清楚 我印象中,DBA 都是很明事理的人,因为这个职业经常要干的一件事情就是:“把问题说清楚,把规矩讲明白”。...library cache lock 来锁定对象,如果相关对象重编译、或者别的会话正在解析相同的语句,就获取不到锁资源,产生等待。...从时间线上分析,会话最早是 1:28:47 秒出现阻塞,1:28:57 秒这个时刻被阻塞的4个会话都是后续串连发生的。

33950

Java高并发缓存架构,缓存雪崩、缓存穿透之谜

面试官心理分析 其实这是问到缓存必问的,因为缓存雪崩和穿透,是缓存最大的两个问题,要么不出现,一旦出现就是致命性的问题,所以面试官一定会问你。...面试题剖析 缓存雪崩 对于系统 A,假设每天高峰期每秒 5000 个请求,本来缓存在高峰期可以扛住每秒 4000 个请求,但是缓存机器意外发生了全盘宕机。...这样的话,缓存中不会有,请求每次都“视缓存于无物”,直接查询数据库。这种恶意攻击场景的缓存穿透就会直接把数据库给打死。 ?...然后设置一个过期时间,这样的话,下次有相同的 key 来访问的时候,缓存失效之前,都可以直接从缓存中取数据。...缓存击穿 缓存击穿,就是说某个 key 非常热点,访问非常频繁,处于集中式高并发访问的情况,当这个 key 失效的瞬间,大量的请求就击穿了缓存,直接请求数据库,就像是一道屏障上凿开了一个洞。

1.1K40

阿常测试100问:复测前端BUG一定要缓存吗?

读者提问:阿常老师,请问复测前端 BUG 是否一定要先缓存 ? 阿常回答:看情况,不一定都需要缓存。...测试同学复测前端 BUG 时,发现 BUG 依然能重现,心里很郁闷,怎么还是没改好,其实开发也不解,我明明已经改好了呀,并且我也自测通过了。...开发同学:缓存清了没有,没有缓存的话先一下试试。 测试同学:缓存之后没问题了。...那什么情况下我们复测前端 BUG 时需要缓存,什么情况下不需要呢,下面我来和大家一起分析下: 一、复测前端 BUG 需要缓存的情况 如果前面遇到这个问题的时候,我们打开过这个页面,开发修复后提交给我们复测...二、复测前端 BUG 不必缓存的情况 如果前面存在这个问题的时候,我们没有打开这个页面,开发修复后提交给我们复测,我们打开这个页面,网页会自动帮我们刷新一次。

48520

java缓存技术总结

Cache 二、缓存的分类 1、基于web应用的系统架构图 2、系统架构的不同层级之间,为了加快访问速度,都可以存在缓存 操作系统磁盘缓存->减少磁盘机械操作 数据库缓存->减少文件系统I/O 应用程序缓存...,使用对象缓存将会极大降低Web系统对于数据库的访问请求 良好的设计数据库结构和利用对象缓存,能够提供极高的性能,对象缓存适合OLTP(联机事务处理)应用 2、查询缓存 对数据库查询结果集进行缓存,类似数据库的...查询缓存和对象缓存适用的场景不一样,是互为补充的 当查询结果集涉及的表记录被修改以后,需要注意清理缓存 3、页面缓存 a、作用 针对页面的缓存技术不但可以减轻数据库服务器压力,还可以减轻应用服务器压力...(例如博客) OSCache提供了简单的页面缓存 可以自行扩展JSP Tag实现页面局部缓存 六、web服务器端缓存 基于代理服务器模式的Web服务器端缓存,如squid/nginx Web服务器缓存技术被用来实现...,将数据库浏览器端缓存 只要不离开当前页面,不刷新当前页面,就可以直接读取缓存数据 只适用于使用AJAX技术的页面

2.2K50
领券