java模拟数据库压测_java模拟数据库缓存

本文介绍了如何使用Java实现数据缓存到本地,以减轻数据库压力,并提供了代码示例。同时,讨论了Java模拟数据库压测的场景,解释了缓存穿透问题及其在高并发情况下的影响。此外,探讨了数据库缓存的重要性,以及Java在高并发环境下使用缓存的策略。
摘要由CSDN通过智能技术生成

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

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/ 李 ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值