【Distributed】缓存技术
一、缓存概述
1.1 缓存技术分类
1.客户端缓存
- 页面缓存
- 浏览器缓存
- App客户端缓存
2.网络缓存
- 代理缓存
- CDN缓存
3.服务器缓存
- 数据库缓存
- 平台缓存级缓存
4.缓存最终的目的是为减轻服务端压力,减少网络传输请求
1.2 缓存框架分类
- 单点缓存框架(只能针对于单个jvm中,缓存容器存放在jvm中,每个jvm互不影响,内置缓存框架,JVM缓存框架)
- ache、gauva cache、oscache。
- 其中eheache,2003生产,是以java语言写的,是在单个jvm中缓存框架。众多市面上很多java优秀的开源框架,mybats、 hibernate 底层中都使用呢ehcache。
- 以RMI方式可以支持分布式缓存。分布式缓存框架(共享缓存数据) 跨语言。
- Redis、Menchache
1.3 Session理解的误区
- Session 是存放在服务器端(保存在单个JVM中) , 返回Sessionid (响应头),客户端存放在Sessionid.下次请求的时候直接使用对应的Sessionid从服务器中查询对应的Session。
- 分布式Session (Session共享的问题) --- 直接使用Token。
- 如何写单个JVM缓存框架? Session Key value
- Map过期时间基于Map集合实现Jvm缓存框架缓存是容器是存放在内存中,为了保证持久化机制,将缓存中的值持久化到硬盘上。(日志缓存文件格式。)。缓存框架都是支持对内存和硬盘支持。
二、基于Map集合实现本地缓存
2.1 定义Map缓存工具类
@Component
public class MapEhcaChe<K, V> {
private Map<K, V> mapCaChe = new ConcurrentHashMap<K, V>();
public void put(K k, V value) {
mapCaChe.put(k, value);
}
public V get(K k) {
return mapCaChe.get(k);
}
public void remove(K k) {
mapCaChe.remove(k);
}
}
2.2 使用案例
@RequestMapping("/put")
public String put(String key, String value) {
mapCaChe.put(key, value);
return "success";
}
@RequestMapping("/get")
public String get(String key) {
String value = mapCaChe.get(key);
return value;
}
三、Ehcache 缓存框架
四、分布式缓存Redies
【Distributed】缓存技术的更多相关文章
- 网站缓存技术总结( ehcache、memcache、redis对比)
网站技术高速发展的今天,缓存技术已经成为大型网站的一个关键技术,缓存设计好坏直接关系的一个网站访问的速度,以及购置服务器的数量,甚至影响到用户的体验. 网站缓存按照存放的地点不同,可以分为客户端缓存. ...
- ASP.NET Core 缓存技术 及 Nginx 缓存配置
前言 在Asp.Net Core Nginx部署一文中,主要是讲述的如何利用Nginx来实现应用程序的部署,使用Nginx来部署主要有两大好处,第一是利用Nginx的负载均衡功能,第二是使用Nginx ...
- .Net环境下的缓存技术介绍 (转)
.Net环境下的缓存技术介绍 (转) 摘要:介绍缓存的基本概念和常用的缓存技术,给出了各种技术的实现机制的简单介绍和适用范围说明,以及设计缓存方案应该考虑的问题(共17页) 1 概念 ...
- [.net 面向对象程序设计进阶] (14) 缓存(Cache) (一) 认识缓存技术
[.net 面向对象程序设计进阶] (14) 缓存(Cache)(一) 认识缓存技术 本节导读: 缓存(Cache)是一种用空间换时间的技术,在.NET程序设计中合理利用,可以极大的提高程序的运行效率 ...
- 分布式缓存技术redis学习系列(三)——redis高级应用(主从、事务与锁、持久化)
上文<详细讲解redis数据结构(内存模型)以及常用命令>介绍了redis的数据类型以及常用命令,本文我们来学习下redis的一些高级特性. 安全性设置 设置客户端操作秘密 redis安装 ...
- 分布式缓存技术redis学习系列(一)——redis简介以及linux上的安装
redis简介 redis是NoSQL(No Only SQL,非关系型数据库)的一种,NoSQL是以Key-Value的形式存储数据.当前主流的分布式缓存技术有redis,memcached,ssd ...
- PHP开发中的缓存技术汇总
在PHP开发中,出于对网站服务器负载的考虑,往往需要对页面.数据等内容进行缓存处理,下面就来看看,在PHP开发中有哪些缓存方式吧. 1.页面部分缓存该种方式,是将一个页面中不经常变的部分进行静态缓存, ...
- .Net环境下的缓存技术介绍
.Net环境下的缓存技术介绍 摘要: 介绍缓存的基本概念和常用的缓存技术,给出了各种技术的实现机制的简单介绍和适用范围说明,以及设计缓存方案应该考虑的问题(共17页) 1 概念 1.1 ...
- ASP.NET 缓存技术分析
缓存功能是大型网站设计一个很重要的部分.由数据库驱动的Web应用程序,如果需要改善其性能,最好的方法是使用缓存功能.可能的情况下尽量使用缓存,从内存中返回数据的速度始终比去数据库查的速度快,因而可以大 ...
- Android硬盘缓存技术DiskLruCache技术笔记
防止多图OOM的核心解决思路就是使用LruCache技术,但LruCache只是管理了内存中图片的存储与释放,如果图片从内存中被移除的话,那么又需要从网络上重新加载一次,这显然非常耗时.因此Googl ...
随机推荐
- 【一些小常识】Linux文件目录的通配符用法/*
在使用linux命令的时候,一时有点搞不清*的用法,于是整理记录下,在做jenkins 持续集成时还是很有用的 “*”在通配符中是最常用的一种,主要整理下在使用Linux命令时,文件夹目录的用法. 1 ...
- 定制开发kubernetes流程
kubernetes集群三步安装 概述 本文介绍如何对kubernetes进行二次开发,仓库如何管理,git分支如何管理,怎样利用CI去编译与发布以及如何给社区贡献代码等,结合实际例子,望对大家有所帮 ...
- python_Tensorflow学习(三):TensorFlow学习基础
一.矩阵的基本操作 import tensorflow as tf # 1.1矩阵操作 sess = tf.InteractiveSession() x = tf.ones([2, 3], &qu ...
- 【Java例题】4.3 3. 使用Gauss消元法求解n元一次方程组的根,
3. 使用Gauss消元法求解n元一次方程组的根,举例,三元一次方程组:0.729x1+0.81x2+0.9x3=0.6867x1+x2+x3=0.83381.331x1+1.21x2+1.1x3=1 ...
- 大厂面试Kafka,一定会问到的幂等性
01 幂等性如此重要 Kafka作为分布式MQ,大量用于分布式系统中,如消息推送系统.业务平台系统(如结算平台),就拿结算来说,业务方作为上游把数据打到结算平台,如果一份数据被计算.处理了多次,产生的 ...
- 01、VM安装教程
1.运行下载完成的Vmware Workstation虚拟机软件包,将会看到如图所示,然后点击“下一步”按钮, 2.在最终用户许可协议界面选中“我接受许可协议中的条款”复选框,然后点击“下一步”按钮 ...
- 利用DoHome APP和音箱控制继电器通断电实验参考步骤
准备材料: Arduino Uno 一块 Arduino 扩展板 购买链接 DT-06模块一个 购买链接 安卓手机一个 小度音箱一个 继电器模块一个 杜邦线若干 1.DT-0 ...
- 管理Windows Server 2008本地用户和组
下面介绍Windows Server 2008本地用户和组的管理包括创建用户.删除用户.重设密码.将用户添加到组.普通用户跟管理员的区别 .用户配置文件包括桌面上文件,桌面背景,桌面上图标,IE设置, ...
- spring事务在实际项目开发中的使用
一, 事务的一些基础知识简单回顾一下,讲的不是很深入,网上博客很多. 1,关于事务的四大特性:原子性.隔离性.一致性.隔离性 本文不再赘述: 2,事务的隔离级别:读未提交,读已提交,可重复读,串行 ...
- Django-内置用户系统
Django自带的用户认证 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括 1.用户注册 2.用户登录 3.用户认证 4.注销 5.修改密码 Django作为一个 ...