Spring中使用Redis

本文介绍Redis的特点及其在MacOSX系统上的安装与启动过程,并演示如何在Spring框架中利用Jedis进行Redis的操作。

本文将介绍如何在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秒。

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值