实现缓存一些数据到本地,避免重复查询数据库,对数据库造成压力,代码如下:

package threadLock;

import java.util.HashMap;

import java.util.Map;

import java.util.concurrent.locks.ReadWriteLock;

import java.util.concurrent.locks.ReentrantReadWriteLock;

public class CatheDemo {

private Map map = new HashMap();

private ReadWriteLock rwl = new ReentrantReadWriteLock(); //定义读写锁

public Object getData(String key){

rwl.readLock().lock();

Object value = null;

try {

value = map.get(key);

if (value == null) {

rwl.readLock().unlock();

rwl.writeLock().lock();

try {

if(value == null)

value = "dqwdwqd"; //从数据库中查找数据

} catch (Exception e) {

e.printStackTrace();

}finally{

rwl.writeLock().unlock();

rwl.readLock().lock();

}

}

} catch (Exception e) {

e.printStackTrace();

}finally{

rwl.readLock().unlock();

}

return value;

}

}

Java模拟并解决缓存穿透

什么叫做缓存穿透 缓存穿透只会发生在高并发的时候,就是当有10000个并发进行查询数据的时候,我们一般都会先去redis里面查询进行数据,但是如果redis里面没有这个数据的时候,那么这10000个并 ...

Java数据库缓存思路

为什么要用缓存?如果问这个问题说明你还是新手,数据库吞吐量毕竟有限,每秒读写5000次了不起了,如果不用缓存,假设一个页面有100个数据库操作,50个用户并发数据库就歇菜,这样最多能支撑的pv也就50 ...

java模拟post请求发送json

java模拟post请求发送json,用两种方式实现,第一种是HttpURLConnection发送post请求,第二种是使用httpclient模拟post请求, 方法一: package main ...

Apache Ignite——新一代数据库缓存系统

[编者按]飞速增长的数据需要大量存储,对这些数据的管理也不是一件容易的事.但相比于存储和管理,如何处理数据才是开发人员真正的挑战.对于TB级别数据的存储和处理通常会让开发人员陷入速度.可扩展性和开销的 ...

SharedPreferences 存List集合,模拟数据库,随时存取

PS:SharedPreferences只要稍微学过一点就会用,他本身通过创建一个Editor对象,来存储提交,而editor可以存的格式为 他里面可以存一个Set Set ...

Java高并发--缓存

Java高并发--缓存 主要是学习慕课网实战视频的笔记 在下图中每一个部分都可以使用缓存的技术. 缓存的特征 缓存命中:直接通过缓存获取到数据 命中率: ...

JavaEE学习之Spring Security3.x——模拟数据库实现用户,权限,资源的管理

一.引言 因项目需要最近研究了下Spring Security3.x,并模拟数据库实现用户,权限,资源的管理. 二.准备 1.了解一些Spring MVC相关知识: 2.了解一些AOP相关知识: 3. ...

java模拟form上传数据

Java模拟form表单上传 查看form表单提交的http请求为 import java.io.*; import java.net.*; public class FileUpload { /** ...

浏览器与服务器交互原理以及用java模拟浏览器操作v

浏览器应用服务器JavaPHPApache * 1,在HTTP的WEB应用中, 应用客户端和服务器之间的状态是通过Session来维持的, 而Session的本质就是Cookie, * 简单的讲,当浏 ...

随机推荐

static关键字

static关键字 static是静态修饰符,一般修饰成员.被static修饰的成员属于类,不属于单个这个类的某个对象. 1.static关键字的特点 a:随着类的加载而加载 b:优先于对象存在 (还 ...

HTML的select控件美化

HTML的select控件美化 CSS: .div-select { border: solid 1px #999; height: 40px; line-height: 40px; cursor: ...

JS判断客户端系统 让ipad iphone 等手持设备自动跳到手机版

if ((navigator.userAgent.match(/(iPhone|iPod|Android|ios|iPad)/i))) { location.replace("http:// ...

HDU ACM 1134 Game of Connections / 1130 How Many Trees?(卡特兰数)

[题目链接]http://acm.hdu.edu.cn/showproblem.php?pid=1134 [解题背景]这题不会做,自己推公式推了一段时间,将n=3和n=4的情况列出来了,只发现第n项与 ...

全国计算机等级考试二级教程-C语言程序设计_第8章_地址和指针

面试: unsigned int *p1 = # int *p2 = # #define _CRT_SECURE_NO_WARNINGS #include

mysql排序索引优化

为排序使用索引 KEY a_b_c (a,b,c) order by 能使用索引最左前缀 -order by a -order by a,b -order by a,b,c -order by a d ...

linux tomcat启动后无法访问

先是按网上资料先下载安装包,然后上传到linux,启动后发现8080端口并未被占用.查了很多资料,不知道神马原因了.最后用yum安装后就可以访问了. 教程如下: 本教程介绍在CentOS 7服务器上使 ...

java---简单的ATM存取系统,

新手练手必备~ 密码账户为: 先创建账户类: package cn.Atm; /** * @author 偶my耶 */ import java.io.*; import com.project.pr ...

Thunder团队第一周 - Scrum会议3

Scrum会议3 小组名称:Thunder 项目名称:在线考试系统 Scrum Master:杨梓瑞 工作照片: 参会成员: 王航:http://www.cnblogs.com/wangh013/ 李 ...

java模拟数据库压测_java模拟数据库缓存相关推荐

  1. java模拟数据库压测_java应用的优化【转】

    XX银行网银系统是一套全新的对公业务渠道类系统,经过两年的建设,将逐步对外提供服务. 该系统融合了原来多个对公渠道系统,并发量是以前多个系统之和,吞吐量要求将大幅上升.为了使广大对公客户使用系统时获得 ...

  2. java模拟数据库压测_Jmeter压测工具使用总结

    1.常用测试工具对比 1.loadrunner 性能稳定,压测结果及细粒度大,可以自定义脚本进行压测,但是太过于重大,功能比较繁多 2.apache ab(单接口压测最方便) 模拟多线程并发请求,ab ...

  3. mysql数据库压测_MySql压测

    安装sysbench环境: curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | ...

  4. mysql数据库压测_MySQL数据库压测有哪些注意事项和FAQ

    MySQL数据库压测有哪些注意事项和FAQ 发布时间:2020-05-12 15:12:49 来源:亿速云 阅读:216 作者:三月 下面讲讲关于MySQL数据库压测有哪些注意事项和FAQ,文字的奥妙 ...

  5. java模拟数据库压测_Jeecgboot Feign、分布式压测、分布式任务调度

    分布式压测 需求场景 一些关键接口需要压测到很高的QPS 需要设置更多的线程去模拟虚拟用户去请求接口 假如需要模拟2万个用户 因为jemeter使用java语言开发 每创建一个线程 jvm默认会为每个 ...

  6. java模拟数据库压测_写并发压测 java 脚本你必须会的 3 个类

    性能测试做到后面,一些特殊的场景利用常用的现成工具满足不了需求,所以你需要学习java写一些特定协议的压测脚本,那你不得不研究多线程或线程池,而此时你也一定会遇到java并发编程中的几个类,今天重点讲 ...

  7. 压测导致mysql数据库CPU很高_排查压测问题引发的系统性能调优过程

    前言:今天测试部门的小梦找到我,委屈巴巴的说我写的接口有问题,因为她对这个接口进行压力测试时,发现系统的吞吐量一直上不去,并且 应用服务器 (部署接口项目的服务器) 的CPU.内存等资源的使用率也一直 ...

  8. jmeter压测、操作数据库、分布式、 linux下运行的简单介绍

    一.jmeter压测 1.如何压测 常规性能压测:10-15分钟 稳定性测试:一周.2天等 如果想要压测10分钟,勾选永远,勾选调度器,填写600秒.也可以使用固定启动时间. 2.tps.响应时间 ( ...

  9. 从尿检取中段谈数据库压测

    想必大家都参加过一年一次的体检,在进行尿液体检的时候,医生会告诉你要留中段尿!要留中段尿!要留中段尿!重要的事情说三遍. 为什么尿液化验要取中段尿呢? 因为前段尿和后段尿容易被污染,所以在进行尿常规和 ...

最新文章

  1. 连接 insance 到 vlan101 - 每天5分钟玩转 OpenStack(97)
  2. 用linux mail命令发送邮件时指定发送人
  3. OSChina 周三乱弹——节前综合症来袭,简直无法抵抗了
  4. axios代理跨域 cli4_跨域本质及解决办法
  5. 十 web爬虫讲解2—Scrapy框架爬虫—Scrapy安装—Scrapy指令
  6. mybatis中mapper.xml命名空间错误
  7. 微信群裂变不起来怎么办?
  8. java文件 空心_解决Eclipse中java文件的图标变成空心J的问题
  9. 使用Python实现搜索任意电影资源的磁力链接
  10. Snmp拓扑结构php,基于SNMP的网络拓扑结构生成
  11. matlab二维绘图plot颜色、线型、点型控制字符
  12. codelite解决中文乱码问题
  13. 设计一个长方形的类,成员的变量有长与宽,成员函数要求周长与面积,然后进行测试。
  14. 如何一键修改CAD图纸底图颜色?
  15. Vue中使用微信JSDK实现图片上传
  16. [026]文本分类之SVM
  17. 知识图谱初步学习(零)——本体是什么
  18. Google drive下载失败,网络错误
  19. oracle-ORA-22922: 不存在的 LOB 值
  20. 【马士兵】Python基础--12

热门文章

  1. minio断点续传方案
  2. php odbc连接池,修复︰ 使用连接池的 SQL Server ODBC 连接时设置的连接属性失败
  3. 双十一大促客服必备话术
  4. 福慧双修探险 BZOJ4398BZOJ2407
  5. TensorFlow学习--LeNet5神经网络
  6. Java神奇代码奇葩代码
  7. 『Python学习笔记』np.random.rand()函数和np.random.randn()函数
  8. 2020-10-13 WPS VBA 添加控件,显示“库没有注册”
  9. Python----Hello程序
  10. 傅里叶(Fourier)级数的指数形式与傅里叶变换(转载)