016 进程内缓存和进程外缓存的对比

对比redis缓存和本地内存

这两者是什么,

在java应用中,对于访问频率比较高,又不怎么变化的数据,常用的解决方案是把这些数据加入缓存。相比DB,缓存的读取效率快好不少。java应用缓存一般分两种,一是进程内缓存,就是使用java应用虚拟机内存的缓存;另一个是进程外缓存,现在我们常用的各种分布式缓存。相比较而言,进程内缓存比进程外缓存快很多,而且编码也简单;但是,进程内缓存的存储量有限,使用的是java应用虚拟机的内存,而且每个应用都要存储一份,有一定的资源浪费。进程外缓存相比进程内缓存,会慢些,但是,存储空间可以横向扩展,不受限制。

进程内缓存和进程外缓存,各有优缺点,针对不同场景,可以分别采用不同的缓存方案。对于数据量不大的,我们可以采用进程内缓存。或者只要内存足够富裕,都可以采用,但是不要盲目以为自己富裕,不然可能会导致系统内存不够。

数据访问时间的数量级别

事件

时间

1

从数据库中读取一条数据(有索引)

十几毫秒

2

从远程分布式缓存读取一条数据

0.5毫秒

3

从内存中读取1MB数据

十几微妙

插入一组数据做位参考

平均单次请求的时间,机器配置相关(i5 8GB的pc)

使用的缓存

t=某次的数据,测试的共次数,av=平均数 ns

本地缓存

t=285907391ns,times=2500,av=468464138

redis缓存

t=465590284ns,times=2653,av=961629872

结论

单次请求的时间 本地缓存小于redis 缓存

测试的方法:

50个线程,每个线程中连续请求10次

使用的缓存

本地缓存

请求500,返回500,时间9748ms

redis缓存

请求500,返回437,时间 12000ms

结论

支持的并发请求数 本地缓存大于 使用redis缓存

参考链接

  1. java应用本地缓存
  2. Java学习之ConcurrentHashMap实现一个本地缓存
  3. 高效的找出两个List中的不同元素
  4. SqlServer基础之(触发器)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏JavaEdge

JVM性能调优实战(一) - 基于JDK命令行的监控1 JVM的参数类型2 查看JVM运行时参数3 jstat查看JVM统计信息GC

7010
来自专栏Java帮帮-微信公众号-技术文章全总结

Java多线程详解1

Java多线程详解 ? ? ? ? Java线程:概念与原理 一、操作系统中线程和进程的概念 现在的操作系统是多任务操作系统。多线程是实现多任务的一种方式。 进...

47190
来自专栏技术支持log

freebsd 磁盘挂载错误 Filesystem is not clean - run fsck.: Operation not permitted

freebsd 中挂载磁盘时遇到 Filesystem is not clean – run fsck.: Operation not permitted 这样...

27710
来自专栏Golang语言社区

Golang语言--select

Golang语言--select golang的select与channel配合使用。它用于等待一个或者多个channel的输出。 应用场景:主goroutin...

35870
来自专栏JavaEdge

git配置0 配置 用户信息1 配置 行尾和颜色2 有用的设置

30450
来自专栏逆向技术

逆向实战第一讲,寻找OllyDbg调试工具的Bug并修复

           逆向实战第一讲,寻找OllyDbg调试工具的Bug并修复 首先我们要知道这个OD的Bug是什么. 我们调试一个UNICODE的窗口,看下其...

25570
来自专栏Aloys的开发之路

屏幕输出VS文件输出

问题1:我们在编写程序时经常需要数一些数据到屏幕,来查看我们的结果是否正确,虽然直接输出到屏幕,查看起来呢很方便,但当数据量很大时,需要耗费大量的时间。于是我...

193100
来自专栏代码世界

23种设计模式之单例模式

单例模式    单例模式(Singleton Pattern)是一个比较简单的模式,其定义为:Ensure a class has only one insta...

347140
来自专栏陈树义

1.Redis 的安装

一、Redis 介绍 Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。...

30590
来自专栏地方网络工作室的专栏

Shell 命令行批量处理图片文件名

Shell 命令行批量处理图片文件名 从网上下载了一堆图片,有的是*.jpg的,有的是*.jpeg的。并且文件名有长有短,很是糟心。因此,我想把这些文件给全部整...

336100

扫码关注云+社区

领取腾讯云代金券