Spring中使用Redis

来源:互联网 发布:mcustomscrollbar.js 编辑:程序博客网 时间:2024/06/07 23:17

本文将介绍如何在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@EnableCachingpublic class RedisCacheConfig extends CachingConfigurerSupport {@Beanpublic JedisConnectionFactory redisConnectionactory() {JedisConnectionFactory redisConnectionFactory = new JedisConnectionFactory();redisConnectionFactory.setHostName("localhost");redisConnectionFactory.setPort(6379);return redisConnectionFactory;}@Beanpublic RedisTemplate<String, String> redisTemplate(RedisConnectionFactory cf) {RedisTemplate<String, String> redisTemplate = new RedisTemplate<String, String>();redisTemplate.setConnectionFactory(cf);return redisTemplate;}@Beanpublic CacheManager cacheManager(RedisTemplate redisTemplate) {RedisCacheManager cacheManger = new RedisCacheManager(redisTemplate);cacheManger.setDefaultExpiration(5); //cache过期时间return cacheManger;}}


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

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


原创粉丝点击