Spring中使用Redis

6 篇文章 0 订阅
2 篇文章 0 订阅

本文将介绍如何在SSH中简单地使用Redis。本人系统是使用Mac OSX,其他系统的也类似。


一. Redis
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它通常被称为数据结构服务器,因为值(value)可以是字符串(String),哈希(Map), 列表(list), 集合(sets)和有序集合(sorted sets)等类型。

Redis 与其他 key - value 缓存产品有以下三个特点
①Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
②Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
③Redis支持数据的备份,即master-slave模式的数据备份。

Redis 优势
①性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
②丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
③原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
④丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。


二. Redis的安装与启动
首先到官网:http://redis.io/ 下载对应版本的安装包,然后输入命令:

//解压:
$ tar -zxvf redis-3.2.8.tar.gz
//进入目录
$cd redis-3.2.8
$make
$sudo make install
默认安装在/usr/local/bin下,可以检查下是否安装成功:

$ ls /usr/local/bin |grep redis


启动Redis
进入/usr/local/bin

$ ./redis-server



检查Redis是否正在工作:

$ redis-cli


可以看到Redis已经成功安装了。


三. 在Spring中使用Redis
Java中操作Redis使用的是Jedis,首先在pom.xml中加入相关依赖:

	<!-- redis cache related.....start -->
	<dependency>
		<groupId>org.springframework.data</groupId>
		<artifactId>spring-data-redis</artifactId>
		<version>1.6.0.RELEASE</version>
	</dependency>
	<dependency>
		<groupId>redis.clients</groupId>
		<artifactId>jedis</artifactId>
		<version>2.7.3</version>
	</dependency>
	<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-pool2 -->
	<dependency>
	    <groupId>org.apache.commons</groupId>
	    <artifactId>commons-pool2</artifactId>
	    <version>2.4.2</version>
	</dependency>
	<!-- redis cache related.....end -->

然后实现配置类:

package com.ehelp.util;

import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.annotation.EnableCaching;
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;

@Configuration
@EnableCaching
public class RedisCacheConfig extends CachingConfigurerSupport {

	@Bean
	public JedisConnectionFactory redisConnectionactory() {
		JedisConnectionFactory redisConnectionFactory = new JedisConnectionFactory();
		
		redisConnectionFactory.setHostName("localhost");
		redisConnectionFactory.setPort(6379);
		return redisConnectionFactory;
	}

	@Bean
	public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory cf) {
		RedisTemplate<String, String> redisTemplate = new RedisTemplate<String, String>();
		redisTemplate.setConnectionFactory(cf);
		return redisTemplate;
	}
	
	@Bean
	public CacheManager cacheManager(RedisTemplate redisTemplate) {
		RedisCacheManager cacheManger = new RedisCacheManager(redisTemplate);
		cacheManger.setDefaultExpiration(5); //cache过期时间
		return cacheManger;
	}
	
}


注意:设置 Cache 过期时间要合适,太长就长期有效,太短你看不到测试结果。建议 5-20秒。

最后直接在需要添加缓存的方法上使用注解就可实现缓存:


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Spring Boot集成Redis非常简单,只需要遵循以下步骤: 1. 在`pom.xml`文件添加`spring-boot-starter-data-redis`依赖: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> ``` 2. 在`application.properties`文件配置Redis连接信息: ``` spring.redis.host=localhost spring.redis.port=6379 ``` 3. 创建一个RedisTemplate bean: ``` @Configuration public class RedisConfig { @Bean public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) { RedisTemplate<String, Object> template = new RedisTemplate<>(); template.setConnectionFactory(redisConnectionFactory); template.setKeySerializer(new StringRedisSerializer()); template.setValueSerializer(new GenericJackson2JsonRedisSerializer()); return template; } } ``` 在这个示例,我们使用了`StringRedisSerializer`用于序列化键,`GenericJackson2JsonRedisSerializer`用于序列化值。 4. 在需要使用Redis的地方注入RedisTemplate bean: ``` @RestController public class MyController { @Autowired private RedisTemplate<String, Object> redisTemplate; @GetMapping("/redis") public String redis() { redisTemplate.opsForValue().set("myKey", "myValue"); Object value = redisTemplate.opsForValue().get("myKey"); return value.toString(); } } ``` 这个示例我们注入了RedisTemplate bean,然后使用`opsForValue()`方法获取操作字符串的Redis操作对象,并且执行了设置和获取操作。 以上就是使用Spring Boot集成Redis的步骤,希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值