二级缓存

  1. 为什么需要缓存
    拉高程序的性能

    关系型数据库:数据与数据之间存在关系(联系)的数据库 mysql/Oracle、sqlserver
    非关系型数据库:数据与数据之间是不存在关系的,key-value
    1、基于文件存储的数据库:ehcache
    2、基于内存存储的数据库:redis、memcache
    3、基于文档存储的数据库:mongodb

  2. 什么样的数据需要缓存
    很少被修改或根本不改的数据 数据字典

    业务场景比如:耗时较高的统计分析sql、电话账单查询sql等

  3. ehcache是什么
    Ehcache 是现在最流行的纯Java开源缓存框架,配置简单、结构清晰、功能强大

    注1:本章介绍的是2.X版本,3.x的版本和2.x的版本API差异比较大

缓存原理

package com.zk.nine.test;

import java.util.HashMap;
import java.util.Map;
/**
 * 缓存的原理
 * @author Administrator
 *
 */
public class EhcacheTest1 {
	static Map<String, Object> map=new HashMap<>();
	public static Object getValue(String key) {
		Object value=map.get(key);
		if(value==null) {
			System.out.println("-----------查询数据库!!!");
			map.put(key,"-----------权限相关的数据");
			value=map.get(key);
		}
		return value;
	}
	/**
	 * 以权限为例
	 *   张三、李四都属于学生角色
	 *   注意:张三、李四看到的菜单都是一样的
	 *   
	 *   希望:
	 *   	1、张三进来查数据库拿到对应的菜单信息  从数据库拿
	 *   	2、李四进来,既然看到的东西是一样的,查数据库需要耗性能。能拿到跟张三一样的信息
	 *   		并且不访问数据库
	 *   		办法:张三访问的时候,将信息存放到缓存中
	 * @param args
	 */
	public static void main(String[] args) {
		System.out.println(getValue("menus"));
		System.out.println(getValue("menus"));
	}
}

打印结果为:
------------查询数据库!!!
------------权限相关的数据
------------权限相关的数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值