热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

redis+spring集成

一、Redis介绍Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统。和Memcache类似,但很大程度补偿了Memca

一、Redis介绍

Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统。和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多,包括string、list、set、zset和hash。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作。在此基础上,Redis支持各种不同方式的排序。

和Memcache一样,Redis数据都是缓存在计算机内存中,不同的是,Memcache只能将数据缓存到内存中,无法自动定期写入硬盘,这就表示,一断电或重启,内存清空,数据丢失。所以Memcache的应用场景适用于缓存无需持久化的数据。而Redis不同的是它会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,实现数据的持久化。

二、Redis-java客户端实现

package cn.sunll.lemolang.conf;import org.springframework.beans.factory.annotation.Value;
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.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;import redis.clients.jedis.JedisPoolConfig;/*** @Title: CacheConfig.java* @Package: cn.sunll.lemolang.conf* @Description: * @author: sunll* @date: 2018年11月5日 上午10:37:01* @version: V1.0*/
@Configuration
@EnableCaching
public class CacheConfig {@Value("${spring.redis.maxTotal}")private int maxTotal;@Value("${spring.redis.maxIdle}")private int maxIdle;@Value("${spring.redis.minIdle}")private int minIdle;@Value("${spring.redis.host}")private String hostName;@Value("${spring.redis.port}")private int port;@Value("${spring.redis.pass}")private String password;@Value("${spring.redis.index}")private int index;private int timeout = 100000;@Beanpublic JedisPoolConfig jedisPoolConfig() {JedisPoolConfig poolConfig = new JedisPoolConfig();poolConfig.setMaxTotal(maxTotal);poolConfig.setMaxIdle(maxIdle);poolConfig.setMinIdle(minIdle);poolConfig.setTestOnBorrow(false);return poolConfig;}@Beanpublic JedisConnectionFactory jedisConnectionFactory() {JedisConnectionFactory factory = new JedisConnectionFactory(jedisPoolConfig());factory.setUsePool(true);factory.setHostName(hostName);factory.setPort(port);factory.setPassword(password);factory.setTimeout(timeout);factory.setDatabase(index);return factory;}@Bean(name = "redisTemplate")public RedisTemplate redisTemplate() {RedisTemplate redisTemplate = new RedisTemplate();redisTemplate.setConnectionFactory(jedisConnectionFactory());RedisSerializer stringSerializer = new StringRedisSerializer();redisTemplate.setKeySerializer(stringSerializer);redisTemplate.setValueSerializer(stringSerializer);redisTemplate.setHashKeySerializer(stringSerializer);redisTemplate.setHashValueSerializer(stringSerializer);return redisTemplate;}@Bean(name = "redisObjectTemplate")public RedisTemplate redisObjectTemplate() {RedisTemplate redisTemplate = new RedisTemplate();redisTemplate.setConnectionFactory(jedisConnectionFactory());RedisSerializer stringSerializer = new StringRedisSerializer();redisTemplate.setKeySerializer(stringSerializer);RedisSerializer genericJackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer();redisTemplate.setHashKeySerializer(stringSerializer);redisTemplate.setHashValueSerializer(genericJackson2JsonRedisSerializer);redisTemplate.setValueSerializer(genericJackson2JsonRedisSerializer);return redisTemplate;}private long defaultExpireTime = 10;@Beanpublic RedisCacheManager cacheManager(RedisTemplate redisObjectTemplate) {RedisCacheManager redisCacheManager = new RedisCacheManager(redisObjectTemplate);redisCacheManager.setDefaultExpiration(defaultExpireTime);return redisCacheManager;}}

 


推荐阅读
author-avatar
小美女金猪宝宝
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有