`
y806839048
  • 浏览: 1126126 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

redis注解

阅读更多

 

value  有隔离作用,不行的话可以:

再手动用一下#root.caches,向spring表明,我们要用value所表示的缓存名来区分具体的缓存实体;

具体用法示例:

当方法的value属性进行了设置(如@Cacheable(value={"cache1", "cache2"})),则有两个cache;

此时可以使用@Cacheable(value={"cache1", "cache2"},key="#root.caches[0].name"),意思就是使用value为“cache1”的缓存;

 

 

 

@CacheEvict(value = "role1",allEntries = true)------整块全部删除

@CacheEvict(value = "role1",key = "#val",allEntries = false)-----指定key

@CachePut(value = "role1",key = "#val")---直接放入缓存块(追加,更新)

@Cacheable(value = "role1",key = "#val")---从缓存块获取,没有走方法

value==@CacheConfig(cacheNames="user")

@AliasFor("cacheNames")

String[] value() default {};

 

@AliasFor("value")

String[] cacheNames() default {};

 

 

 

@Cacheable 注解 源码如下 :

@Target({ElementType.METHOD, ElementType.TYPE})

 

value、cacheNames 属性 : 指定 Cache名称 表示当前方法的返回值是会被缓存在哪个 Cache上--块

key 属性 : 用来指定 Spring缓存方法的返回结果时对应的 key---在快上

@Cacheable(value = "users", key = "#id")

public User find(Integer id) {

    return null;

}

 

@Cacheable(value = "users", key = "#p0")

public User find(Integer id) {

    return null;

}

 

sync属性 : 在多线程环境下,某些操作可能使用相同参数同步调用。默认情况下,缓存不锁定任何资源,可能导致多次计算,而违反了缓存的目的。对于这些特定的情况,属性 sync 可以指示底层将缓存锁住,使只有一个线程可以进入计算,而其他线程堵塞,直到返回结果更新到缓存中

@Cacheable(cacheNames="foos", sync="true")----享元模式

public Foo executeExpensiveOperation(String id) {

}

 

condition属性 : 指定发生的条件,condition属性默认为空,表示将缓存所有的调用情形。其值是通过 SpringEL表达式来指定的,当为true时表示进行缓存处理;当为 false 时表示不进行缓存处理,即每次调用该方法时该方法都会执行一次

@Cacheable(value={"users"}, key="#user.id", condition="#user.id%2==0")

 

@CachePut("users")  刷新缓存---用户可以操作不好指定到块(一个块多个key时)----追加???---追加、覆盖(更新)

https://blog.csdn.net/u013041642/article/details/80370156----------一般是多个方法操作一个缓存,来实现同步

 

@CacheEvict : 

@CacheEvict(value="users", allEntries=true)   --按照块清除,按照key清除(一个server一个块),可以用来整块清除---管理员接口

 

beforeInvocation属性 : 清除操作默认是在对应方法成功执行之后触发的,即方法如果因为抛出异常而未能成功返回时也不会触发清除操作。--触发的时机

 

 

 

@Caching : @Caching注解可以在一个方法或者类上同时指定多 个Spring Cache 相关的注解。其拥有三个属性 : cacheable、put和evict,分别用于指定@Cacheable、@CachePut 和 @CacheEvict----三个元素可以放在一起使用,指明这个方法,触发哪些缓存操作

可以操作其他缓存

@Caching(cacheable = @Cacheable("users"),

         evict = { @CacheEvict("cache2"),

                   @CacheEvict(value = "cache3", allEntries = true) })

public User find(Integer id) {

    return null;

}

 

 

 

参考:

https://blog.csdn.net/chenshun123/article/details/79518812

https://q.cnblogs.com/q/111220/

https://blog.csdn.net/chenleixing/article/details/44815443

https://blog.csdn.net/weixin_34320724/article/details/86029310

 

分享到:
评论

相关推荐

    3.1、spring boot redis注解缓存Cacheable (value) 1

    spring boot redis 注解缓存Cacheable (value) 1 spring boot redis 注解缓存是基于spring boot 框架和redis缓存机制的结合,实现了缓存机制的自动化管理。下面将详细介绍spring boot redis 注解缓存的实现机制和...

    7、spring redis 注解开发 单片机 集群 主从复制1

    在Spring Redis注解开发中,我们通常利用Spring Data Redis库来简化与Redis数据库的交互。以下是对标题和描述中涉及的知识点的详细说明: 1. **Spring Data Redis**:Spring Data Redis是Spring框架的一个模块,它...

    shiro+springboot2.x+redis注解方式完整项目

    shiro+springboot2.x+redis注解方式完整项目,包括自定义realm,整合redis缓存管理器,自定义sessionId,自定义session等等,sql文件就在resource文件夹下

    redis注解方式序列化改造

    改redis序列化方式由GenericJackson2RedisSerializer改为Jackson2JsonRedisSerializer

    spring-data-redis基于注解的实现方式

    "spring-data-redis基于注解的实现方式"是这个话题的核心,它探讨了如何利用Spring Data Redis的注解功能来简化数据缓存的实现。下面将详细阐述这一主题,包括相关的技术和实践方法。 首先,我们需要理解Spring ...

    redis配置中文注释

    redis配置中文注释,大家看看吧,网上找了一部分,自己写了一部分,应该没啥问题

    redis各个注解使用demo方法

    Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI编写、支持网络、可基于内存亦可持久化的日志型、Key-Value,并提供多种语言的API。好了,其它的就不介绍了。 @Cacheable  此注解表明在...

    spring整合redis做缓存用注解实现的完整例子

    在本文中,我们将深入探讨如何使用Spring框架与Redis集成,以实现高效的缓存管理,并通过注解的方式简化这一过程。Redis是一种高性能的键值数据存储系统,常被用于缓存、消息队列等多种场景,而Spring框架则为Java...

    Redis 与SpringMVC 集成 基于注解方式

    Redis 与SpringMVC 集成 基于注解方式

    redis 源码 完整注释

    本资源提供了带有完整注释的 Redis 源代码,对于深入理解 Redis 内部工作原理、优化性能以及进行二次开发具有极大的帮助。下面我们将详细探讨 Redis 的主要组成部分及其工作方式。 1. **Redis 数据结构** Redis ...

    redis中文注释版.conf

    redis的中文注释版,对redis中的内容添加了详细的中文注解,方便理解和修改配置!!! redis的中文注释版,对redis中的内容添加了详细的中文注解,方便理解和修改配置!!! redis的中文注释版,对redis中的内容添加...

    redis-3.0注释版源码

    这份注释是作者在创作新版《Redis 设计与实现》期间, 为了了解 Redis 的内部实现而制作的, 所有在书中有介绍的内容, 在源码中都进行了相应的注释。 在注释的过程中, 除了少量空格和空行方面的调整外, 没有对...

    Spring整合Redis用作缓存-注解方式

    在本文中,我们将深入探讨如何使用Spring框架与Redis集成,以实现高效的缓存管理。Redis是一种内存中的数据结构存储系统,常被用作数据库、缓存和消息中间件。Spring框架提供了一种灵活且强大的方式来整合Redis,...

    《Redis设计和实现 黄建宏著》配套 Redis 3.0 中文注释版源码

    现在,我们有了一份与该书配套的Redis 3.0中文注释版源码,这将极大地便利开发者和学习者对Redis的理解。 Redis 3.0版本是一个重要的里程碑,它引入了许多改进和新特性。首先,让我们关注一下这个版本中的核心概念...

    SpringBoot使用注解实现 Redis 数据库的切换.zip

    本教程将深入讲解如何在SpringBoot项目中通过注解方式实现Redis数据库的切换。 首先,我们需要理解SpringBoot与Redis的集成原理。SpringBoot提供了对Redis的自动配置支持,只需要在项目中引入`spring-boot-starter-...

    Redis 与SpringMVC 基于注解方式 集成

    本文将深入探讨如何在SpringMVC项目中,通过注解方式集成Redis,以实现高效的数据交互。 首先,我们需要在项目中引入Redis的相关依赖。这通常通过在`pom.xml`文件中添加Spring Data Redis和Jedis客户端库的Maven...

    springMVC注解+ security + redis 实例

    综上所述,"springMVC注解+ security + redis 实例"的学习资料将涵盖这些技术的基本用法和整合方式,帮助开发者掌握如何构建一个安全、高效的Web应用。通过这个实例,你可以了解到如何在Spring MVC应用中使用注解...

    redis在win上的运行脚本redis.bat

    如果需要修改端口号,找到`# port 6379`这一行,去掉前面的注释符`#`并更改端口号。 使用批处理脚本`redis.bat`启动Redis服务非常简单。双击运行这个文件,它会调用`redis-server.exe`启动Redis服务。如果一切正常...

    redis配置文件,附中文注释

    redis 配置文件,附中文注释,不落地的redis数据库,适合新手,了解redis 配置

    spring+springmvc+mybatis+redisSentinel

    - 在需要缓存的方法上添加Redis注解,指定缓存的key和过期策略。 - 测试和调试,确保所有组件正常工作且能够正确处理异常情况。 以上知识点是本项目的核心技术,它们共同构建了一个高可用、高性能的Web应用。...

Global site tag (gtag.js) - Google Analytics