springboot redis 缓存对象
只要加入spring-boot-starter-data-redis , springboot 会自动识别并使用redis作为缓存容器,使用方式如下
gradle加入依赖
compile("org.springframework.boot:spring-boot-starter-data-redis:${springBootVersion}")
redis configuration 中启用缓存
@Configuration
@EnableCaching
public class RedisConfiguration
redis 自定义key生成规则
@Bean
public KeyGenerator wiselyKeyGenerator() {
return new KeyGenerator() {
@Override
public Object generate(Object target, Method method, Object... params) {
StringBuilder sb = new StringBuilder(); sb.append(target.getClass().getName());
sb.append(":" + method.getName());
for (Object obj : params) {
sb.append(":" + obj.toString());
}
return sb.toString();
}
}; }
有时候我们需要 使用 redisTemplate, 可以这样子配置
@Bean
public RedisConnectionFactory redisConnectionFactory() {
return new JedisConnectionFactory();
} @Bean
public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate redisTemplate = new RedisTemplate();
redisTemplate.setConnectionFactory(redisConnectionFactory);
return redisTemplate;
} @Bean
public CacheManager cacheManager(RedisTemplate redisTemplate) {
return new RedisCacheManager(redisTemplate);
}
完整代码
package cn.xiaojf.today.data.redis.configuration; import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cache.interceptor.KeyGenerator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate; import java.lang.reflect.Method; /**
* redis 缓存配置
* @author xiaojf 2016/12/7 10:29.
*/
@Configuration
@EnableCaching
public class RedisConfiguration { @Bean
public KeyGenerator wiselyKeyGenerator() {
return new KeyGenerator() {
@Override
public Object generate(Object target, Method method, Object... params) {
StringBuilder sb = new StringBuilder(); sb.append(target.getClass().getName());
sb.append(":" + method.getName());
for (Object obj : params) {
sb.append(":" + obj.toString());
}
return sb.toString();
}
}; } @Bean
public RedisConnectionFactory redisConnectionFactory() {
return new JedisConnectionFactory();
} @Bean
public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate redisTemplate = new RedisTemplate();
redisTemplate.setConnectionFactory(redisConnectionFactory);
return redisTemplate;
} @Bean
public CacheManager cacheManager(RedisTemplate redisTemplate) {
return new RedisCacheManager(redisTemplate);
}
}
使用例子
package cn.xiaojf.today.sys.dao.impl; import cn.xiaojf.today.base.dao.impl.BaseDaoImpl;
import cn.xiaojf.today.base.model.PageInfo;
import cn.xiaojf.today.base.util.Asserts;
import cn.xiaojf.today.sys.dao.SysUserDao;
import cn.xiaojf.today.sys.repository.SysUserRepository;
import cn.xiaojf.today.sys.entity.SysUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.stereotype.Repository; import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set; /**
* 用户数据访问接口实现类
* @author xiaojf 2017/2/9 17:40.
*/
@Repository
@CacheConfig(cacheNames = {"sysUserCache"})
public class SysUserDaoImpl extends BaseDaoImpl<SysUser> implements SysUserDao {
@Autowired
private SysUserRepository userRepository; public SysUserDaoImpl() {
super(SysUserRepository.class);
} @Override
// @Cacheable(key = "#username")
public SysUser getByUsername(String username) {
Asserts.notNull(username,"用户名不能为空");
SysUser user = userRepository.findFirstByUsername(username);
return user;
}
}
spring cache的其他使用方式很简单,可以直接看官网或者百度例子
springboot redis 缓存对象的更多相关文章
- SpringBoot Redis缓存 @Cacheable、@CacheEvict、@CachePut
文章来源 https://blog.csdn.net/u010588262/article/details/81003493 1. pom.xml <dependency> <gro ...
- springboot Redis 缓存
1,先整合 redis 和 mybatis 步骤一: springboot 整合 redis 步骤二: springboot 整合 mybatis 2,启动类添加 @EnableCaching 注解, ...
- 微服务-Springboot+Redis缓存管理接口代码实现
废话少说,上代码,结合代码讲解: 一.创建maven工程:导入依赖: <packaging>war</packaging><!--修改jdk的版本--><pr ...
- springboot + redis缓存使用
[参照资料] 1.spring boot 官网文档 2.https://www.cnblogs.com/gdpuzxs/p/7222309.html [项目结构] [pom.xml配置] <?x ...
- 从.Net到Java学习第七篇——SpringBoot Redis 缓存穿透
从.Net到Java学习系列目录 场景描述:我们在项目中使用缓存通常都是先检查缓存中是否存在,如果存在直接返回缓存内容,如果不存在就直接查询数据库然后再缓存查询结果返回.这个时候如果我们查询的某一个数 ...
- redis 缓存对象、列表
在spring boot环境下有个StringRedisTemplate对象,默认已经为我们配置好了,只需要自动注入过来就能用,但是使用它只能在Redis中存放字符串.具体操作如下: @RunWith ...
- springboot redis 缓存跨域丢失问题
对于前后端分离的项目,在开发阶段经常会遇到跨域的问题. 1.首先,对于后台的处理方式,第一种是用 @CrossOrigin 注解,@crossorigin是后端SpringMVC框架(需4.2版本以上 ...
- Redis缓存 序列化对象存储乱码问题
使用Redis缓存对象会出现下图现象: 键值对都是乱码形式. 解决以上问题: 如果是xml配置的 我们直接注入官方给定的keySerializer,valueSerializer,hashKeySer ...
- C# mvc 前端调用 redis 缓存的信息
新手 这几天网上学习下redis ,自己总结下过程,怕之后忘记了,基本会用最简单的,有的还是不懂,先记下来,自己摸索的. 没有安装redis的先安装,教程:http://www.cnblogs.com ...
随机推荐
- java 基础知识二 基本类型与运算符
java 基础知识二 基本类型与运算符 1.标识符 定义:为类.方法.变量起的名称 由大小写字母.数字.下划线(_)和美元符号($)组成,同时不能以数字开头 2.关键字 java语言保留特殊含义或者 ...
- dd命令的使用简介
dd命令: convert and copy a file 用法: dd if=/PATH/FROM/SRC of=/PATH/TO/DEST bs=#: block size, 复制单元大小 ...
- C#各个版本中的新增特性详解
序言 自从2000年初期发布以来,c#编程语言不断的得到改进,使我们能够更加清晰的编写代码,也更加容易维护我们的代码,增强的功能已经从1.0搞到啦7.0甚至7.1,每一次改过都伴随着.NET Fram ...
- Jquery一些实用函数
1.jQuery.parseJSON( json )第一个参数json的类型是字符串: var obj = jQuery.parseJSON( '{ "name": "J ...
- ASP.NET CORE部署到Linux
ASP.NET CORE部署到CentOS中 在Linux上安装.NET Core 参考:https://www.microsoft.com/net/core#linuxcentos 配置Nginx ...
- 简单的总结一下iOS面试中会遇到的问题
1.线程是什么?进程是什么?二者有什么区别和联系? 一个程序至少有一个进程,一个进程至少有一个线程: 进程:一个程序的一次运行,在执行过程中拥有独立的内存单元,而多个线程共享一块内存 线程:线程是指 ...
- linux c socket 并发 服务端
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/types. ...
- MidpointRounding 枚举值简要说明
1. MidpointRounding.AwayFromZero 当小数点后取舍时5 时会取绝对值大的如 4.5 会取5 及正常的4舍5入. -- 官方解释翻译解释取绝对值小值感觉反译错了. 2.Mi ...
- lib-flexble 使用遇到的bug及解决方案
1 lib-flexble解决微信端长按不能弹出识别二维码功能 加viewport就完美解决 flexble可以自动完成 一般情况不建议加 但是么 bug出来了 加上就好了 2 Font Boos ...
- web前端技术框架选型参考
一.出发点 随着Web技术的不断发展,前端架构框架.UI框架.构建工具.CSS预处理等层出不穷,各有千秋.太多的框架在形成初期,都曾在web领域 掀起过一场技术浪潮,可有些却仅仅是昙花一现,随着他们用 ...