美文网首页
volatile应用场景--进程内缓存

volatile应用场景--进程内缓存

作者: 文竹小二 | 来源:发表于2017-10-28 17:19 被阅读176次

提出问题:

在项目中需要开发一个进程内缓存的功能,对此缓存功能做了如下两点限制。

    限制1:缓存数据无过期时间。

    限制2:缓存更新线程更新数据后,要求缓存读取线程立即能读到最新数据。

解决问题:

对于限制1,无需做任何处理。接下来的步骤是如何解答限制2。

步骤1:

可以把限制2分为两个操作,缓存更新线程更新数据为操作A,缓存读取线程读取最新数据为操作B。可以发现这两个操作正好满足JMM的happens-before关系,且正好对应JMM的volatile变量规则(可从如下图中查看)。因此我们完全可以用volatile变量来实现一个简单的进程内缓存。

图1 happens-before规则

JMM如何实现Volatile变量规则

图2 编译器重排序规则 图3 编译器重排序规则 图4 编译器重排序规则

欢迎大家讨论该话题, 咱们共同成长哈。

后续:volatile底层深入揭秘

相关文章

  • volatile应用场景--进程内缓存

    提出问题: 在项目中需要开发一个进程内缓存的功能,对此缓存功能做了如下两点限制。 限制1:缓存数据无过期时间。...

  • Redis适合的场景

    Redis适合的场景 一、【进程内】缓存和【进程外】缓存 【进程内】缓存:就是把数据缓存在服务的进程内,就是进程内...

  • 高并发下为什么更喜欢进程内缓存

    进程内缓存是指缓存和应用程序在相同地址空间。即同一个进程内。分布式缓存是指缓存和应用程序位于不同进程的缓存,通常部...

  • 多级缓存的分层架构,缓存设计的五大策略

    前言 缓存技术存在于应用场景的方方面面。从浏览器请求,到反向代理服务器,从进程内缓存到分布式缓存。其中缓存策略,算...

  • 前台系统本地缓存和分布式缓存实现方案

    根据缓存是否与应用进程属于同一进程,可以将内存分为本地缓存和分布式缓存。本地缓存是在同一个进程内的内存空间中...

  • Java并发机制的底层实现原理

    volatile的应用 valatile实现原则Lock前缀指令会引起处理器缓存回写到内存一个处理器的缓存回写到内...

  • 进程和应用生命周期

    进程和应用生命周期 Note : 前台进程 --> 可见进程 --> 服务进程 --> 缓存进程(原来...

  • 云数据库 Redis的应用与实践

    Redis缓存应用场景 对于查询较为频繁的数据,可以缓存至Redis中,以提高读取的性能; 场景概述 缓存应用实施...

  • 面试问题记录(四)Day55 2019-01-14

    volatile的使用及与synchronize的区别,他们的特性及使用场景。对缓存的使用,各种缓存技术,中间件的...

  • Java本地缓存

    引言 缓存是存储在内存中的KV数据结构,分为分布式缓存和本地缓存。 分布式缓存方案中,一般应用进程和缓存进程不在同...

网友评论

      本文标题:volatile应用场景--进程内缓存

      本文链接:https://www.haomeiwen.com/subject/rnjspxtx.html