SpringBoot:redis分布式缓存

前言

应用系统需要通过Cache来缓存不经常改变得数据来提高系统性能和增加系统吞吐量,避免直接访问数据库等低速存储系统。缓存的数据通常存放在访问速度更快的内存里或者是低延迟存取的存储器,服务器上。应用系统缓存,通常有如下作用:

  • 缓存web系统的输出,如伪静态页面。
  • 缓存系统的不经常改变的业务数据,如用户权限,字典数据.配置信息等

大家都知道springBoot项目都是微服务部署,A服务和B服务分开部署,那么它们如何更新或者获取共有模块的缓存数据,或者给A服务做分布式集群负载,如何确保A服务的所有集群都能同步公共模块的缓存数据,这些都涉及到分布式系统缓存的实现。(ehcache可以通过Terracotta组件一个缓存集群,这个暂时不讲)

但是ehcache的设计并不适合做分布式缓存,所以今天用redis来实现分布式缓存。

架构图:

一二级缓存服务器

使用Redis缓存,通过网络访问还是不如从内存中获取性能好,所以通常称之为二级缓存,从内存中取得的缓存数据称之为一级缓存。当应用系统需要查询缓存的时候,先从一级缓存里查找,如果有,则返回,如果没有查找到,则再查询二级缓存,架构图如下

Spring Boot 2 自带了前面俩种缓存的实现方式,本文将简单实现第三种,高速一二级缓存实现

Redis分布式缓存

引入redis的starter

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

原文地址:https://www.cnblogs.com/mengY/p/11765415.html

时间: 2024-08-27 11:38:15

SpringBoot:redis分布式缓存的相关文章

Redis分布式缓存安装(单节点)

Redis分布式缓存安装(单节点) Redis官网:http://redis.io独立缓存服务器:IP:xxx.xxx.xxx.xxx安装环境:CentOS 6.6Redis 版本:redis-3.0(因为 Redis3.0 在集群和性能提升方面的特性,rc 版为正式版的候选版,请在安装时去官网选用最新版)用户:root安装目录:/usr/local/redis 下面我们针对于Redis安装做下详细的记录:编译和安装所需的包:# yum install gcc tcl 提醒:下载 3.0 版 R

Redis 分布式缓存 Java 框架

为什么要在 Java 分布式应用程序中使用缓存? 在提高应用程序速度和性能上,每一毫秒都很重要.根据谷歌的一项研究,假如一个网站在3秒钟或更短时间内没有加载成功,会有 53% 的手机用户会离开. 缓存是让分布式应用程序加速的重要技术之一.存储的信息越接近 CPU,访问速度就越快.从 CPU 缓存中加载数据比从 RAM 中加载要快得多,比从硬盘或网络上加载要快得多得多. 要存储经常访问的数据,分布式应用程序需要在多台机器中维护缓存.分布式缓存是降低分布式应用程序延迟.提高并发性和可伸缩性的一种重要

基于redis分布式缓存实现

第一:Redis 是什么? Redis是基于内存.可持久化的日志型.Key-Value数据库 高性能存储系统,并提供多种语言的API. 第二:出现背景 数据结构(Data Structure)需求越来越多, 但memcache中没有, 影响开发效率 性能需求, 随着读操作的量的上升需要解决,经历的过程有: 数据库读写分离(M/S)–>数据库使用多个Slave–>增加Cache (memcache)–>转到Redis 解决写的问题: 水平拆分,对表的拆分,将有的用户放在这个表,有的用户放在

基于redis分布式缓存实现(新浪微博案例)

第一:Redis 是什么? Redis是基于内存.可持久化的日志型.Key-Value数据库 高性能存储系统,并提供多种语言的API. 第二:出现背景 数据结构(Data Structure)需求越来越多, 但memcache中没有, 影响开发效率 性能需求, 随着读操作的量的上升需要解决,经历的过程有: 数据库读写分离(M/S)–>数据库使用多个Slave–>增加Cache (memcache)–>转到Redis 解决写的问题: 水平拆分,对表的拆分,将有的用户放在这个表,有的用户放在

如何实现redis分布式缓存

摘要: 第一:Redis 是什么? Redis是基于内存.可持久化的日志型.Key-Value数据库 高性能存储系统,并提供多种语言的API. 第二:出现背景 数据结构(Data Structure)需求越来越多, 但memcache中没有, 影响开发效率 性能需求, 随着读操作的量的上升需要解决,经历的过程有:  数据库读写分离(M/S)–>数据库使用多个Slave–>增加Cache (memcache)–>转到Redis 解决写的问题:  水平拆分,对表的拆分,将有的用户放在这个表,

C#Redis分布式缓存

Redis是最快的key-value分布式缓存之一 缺点: 没有本地数据缓冲, 目前还没有完整的数据聚集化支持 优点: 配置简单, 使用方便, 高性能,支持不同的数据类型(hashes, lists, sets, sorted sets) 地址: http://www.cnblogs.com/davidgu/archive/2013/08/16/3262571.html http://www.cnblogs.com/piaopiao7891/p/3548951.html http://www.l

转载自haier_jiang的专栏基于redis分布式缓存实现

简单说明下,写此文章算是对自己近一段工作的总结,希望能对你有点帮助,同时也是自己的一点小积累. 一.为什么选择redis 在项目中使用redis做为缓存,还没有使用memcache,考虑因素主要有两点: 1.redis丰富的数据结构,其hash,list,set以及功能丰富的String的支持,对于实际项目中的使用有很大的帮忙.(可参考官网redis.io) 2.redis单点的性能也非常高效(利用项目中的数据测试优于memcache). 基于以上考虑,因此选用了redis来做为缓存应用. 二.

用于redis分布式缓存实现

第一:Redis 是什么? Redis是基于内存.可持久化的日志型.Key-Value数据库 高性能存储系统,并提供多种语言的API. 第二:出现背景 数据结构(Data Structure)需求越来越多, 但memcache中没有, 影响开发效率 性能需求, 随着读操作的量的上升需要解决,经历的过程有: 数据库读写分离(M/S)–>数据库使用多个Slave–>增加Cache (memcache)–>转到Redis 解决写的问题: 水平拆分,对表的拆分,将有的用户放在这个表,有的用户放在

Java-No.13 基于redis分布式缓存实现

1.redis实现分布式缓存 package com.shma.redis; import java.util.List; import org.apache.commons.pool2.impl.GenericObjectPoolConfig; import redis.clients.jedis.JedisShardInfo; import redis.clients.jedis.ShardedJedis; import redis.clients.jedis.ShardedJedisPoo