文档章节

Spring Boot 中使用Redis缓存泛型对象

勇敢的飞石
 勇敢的飞石
发布于 2017/03/28 15:39
字数 218
阅读 774
收藏 2

定义cache配置类

@Configuration
@EnableCaching
public class SpringCacheConfig {	

	@Bean
	JedisConnectionFactory jedisConnectionFactory() {
		JedisConnectionFactory factory = new JedisConnectionFactory();
		factory.setUsePool(true);
		factory.setHostName("localhost");
		factory.setPort(6379);
		return factory;
	}

	@Bean
	<T> RedisTemplate<String, T> redisTemplate() {
		RedisTemplate<String, T> template = new RedisTemplate<String, T>();
		template.setConnectionFactory(jedisConnectionFactory());
		template.setStringSerializer(new StringRedisSerializer());
		template.setDefaultSerializer(new GenericJackson2JsonRedisSerializer());
		template.setEnableDefaultSerializer(true);
		template.afterPropertiesSet();
		return template;
	}

}

定义主类

@SpringBootApplication
public class Main extends SpringBootServletInitializer {

    //打war包时需重写SpringBootServletInitializer.configure
	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
		return application.sources(Main.class);
	}
    
	public static void main(String[] args) throws Exception {		
		new SpringApplicationBuilder().sources(Main.class).properties("spring.config.name=application")
				.bannerMode(Mode.OFF).run(args);
	}	

}

测试类

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = Main.class)
public class RedisTest {

	@Autowired
	private StringRedisTemplate stringRedisTemplate;

	@Autowired
	private RedisTemplate<String, Person> redisTemplate;

	 
	@Test
	public void set() throws Exception {

		// 保存字符串
		stringRedisTemplate.opsForValue().set("aaa", "111");
		Assert.assertEquals("111", stringRedisTemplate.opsForValue().get("aaa"));

		BoundHashOperations<String, String, Integer> ho = redisTemplate.boundHashOps("weather");
		ho.put("北京", 1);
		ho.put("上海", 2);
		Assert.assertTrue(redisTemplate.boundHashOps("weather").size() == 2);
	}

	@Test
	public void setObject() throws Exception {
		BoundValueOperations<String, Person> op = redisTemplate.boundValueOps("person");
		Person p = new Person();
		p.setId(100);
		p.setName("jack");
		op.set(p);

		op = redisTemplate.boundValueOps("person");
		Assert.assertNotNull(op.get());
		Assert.assertEquals(op.get().getId(), 100);
	}

}

 

© 著作权归作者所有

勇敢的飞石
粉丝 4
博文 76
码字总数 27415
作品 0
东城
私信 提问
加载中

评论(1)

tianxia007
tianxia007
大神 如果是类A里面嵌入类B,这样的结构,A的对象中没有B的对象相关字符串啊,具体:
https://www.oschina.net/question/1458314_2263060
可以帮忙看下吗
Redis的安装,修改密码及登录验证,及三种操作方案

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 https://blog.csdn.net/qq23145857/article/details/91045268 官网下载地址:http://redis....

飞火龙在天
06/06
0
0
Spring Boot(11)——使用Spring Cache

使用Spring Cache Spring提供了Cache抽象,它允许我们声明哪些bean的哪些方法的外部调用需要使用Cache。方法调用使用了Cache后,在调用真实方法前会先从缓存中获取结果,缓存中如果没有则会调...

elim168
2018/12/22
0
0
Spring Boot + Mybatis + Redis as L2cache

1.背景 Spring-Boot因其提供了各种开箱即用的插件,使得它成为了当今最为主流的Java Web开发框架之一。Mybatis是一个十分轻量好用的ORM框架。Redis是当今十分主流的分布式key-value型数据库,...

梨加橙
2017/08/08
283
0
Spring Boot "Redis" 缓存使用姿势盘点

1. Redis 简介 Redis 是目前业界使用最广泛的内存数据存储。相比 Memcached,Redis 支持更丰富的数据结构,例如 hashes, lists, sets 等,同时支持数据持久化。除此之外,Redis 还提供一些类...

游客bzrhwp4g2xeam
09/28
0
0
搞懂分布式技术14:Spring Boot使用注解集成Redis缓存

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a724888/article/details/80785403 为了提高性能,减少数据库的压力,使用缓存是非常好的手段之一。本文,讲解...

你的猫大哥
2018/06/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

kibana汉化

kibana5 / 6 需要下载补丁包,https://github.com/anbai-inc/Kibana_Hanization 其中 v6 版本原生支持国际化,只需要添加资源文件并且配置即可 kibana7 v7版本官方内置汉化资源,在配置文件 ...

细肉云吞
16分钟前
4
0
spring boot 自定义日志 log4j2

使用默认的日志在实际开发中会存在很多问题,比如备份文件名称无法自动重命名、各个等级的日志被放在一个文件中等,所以实际开发中为了更好满足我们的需求,我们一般都会自定义采用配置的方式...

雷开你的门
20分钟前
6
0
PCB设计-Allegro软件入门系列-设计参数配置(上)

前言 经历了导入网表,和放置器件后,我们就要画板子了,但是必要的设计参数也要先准备好,磨刀不误砍柴工。 《一》显示参数 这里主要设置DRC报错标志大小和飞线显示类型 (1)DRC标志可以适当...

demyar
21分钟前
5
0
js实现微博、微信分享

html <!-- 分享 --><div class="share-box"> <b style="vertical-align: middle;">分享到:</b> <a title="分享到新浪微博" class="shareSina"><span class="share-icon"></span><......

张兴华ZHero
37分钟前
6
0
创龙TMS320DM8168浮点DSP C674x + ARM Cortex-A8的CPU、NAND FLASH、NOR FLASH

TL6678-EasyEVM是广州创龙基于SOM-TL6678核心板而研发的一款多核高性能DSP开发板。开发板采用核心板+底板方式,底板采用沉金无铅工艺的四层板设计,尺寸为200mm*106.65mm,它为用户提供了SOM...

Tronlong创龙
40分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部