spring data redis
来源:互联网 发布:江南大学网络教育专业 编辑:程序博客网 时间:2024/05/19 11:50
Configuration
/** * Created by jiyang on 15:44 2017/12/20 */@Configurationpublic class RedisConfig { @Value("${redis.host:172.16.0.17}") private String redisHost; @Value("${redis.port:6379}") private int redisPort; @Value("${chcheRedis.host:172.16.0.17}") private String cacheRedisHost; @Value("${chacheRedis.port:6379}") private int cacheRedisPort; // 1 创建 JedisPoolConfig @SuppressWarnings("Duplicates") @Bean public JedisPoolConfig jedisPoolConfig(){ JedisPoolConfig poolConfig= new JedisPoolConfig(); poolConfig.setMaxTotal(100);// 最大连接数 poolConfig.setMaxIdle(50);// 最大空闲数 poolConfig.setMaxWaitMillis(1000);//最大建立连接等待时间 return poolConfig; } // 2 创建 RedisConnectionFactory @Bean @Primary public RedisConnectionFactory jedisConnectionFactory(){ JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory(jedisPoolConfig()); jedisConnectionFactory.setHostName(redisHost); jedisConnectionFactory.setPort(redisPort); return jedisConnectionFactory; } @Bean(name = "cacheConnectionFactory") public RedisConnectionFactory cacheConnectionFactory(){ JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory(jedisPoolConfig()); jedisConnectionFactory.setHostName(redisHost); jedisConnectionFactory.setPort(redisPort); return jedisConnectionFactory; } // 3 创建 StringRedisTemplate @Primary @Bean public StringRedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory){ return new StringRedisTemplate(redisConnectionFactory); } @Bean(name = "chacheRedis") public StringRedisTemplate cacheRedisTemplate(@Qualifier("cacheConnectionFactory") RedisConnectionFactory redisConnectionFactory){ return new StringRedisTemplate(redisConnectionFactory); } // 4 创建 RedisTemplate @Bean(name = "cacheRedisForObject") public RedisTemplate cacheRedisForObject(@Qualifier("cacheConnectionFactory") RedisConnectionFactory redisConnectionFactory){ RedisTemplate redisTemplate = new RedisTemplate(); redisTemplate.setConnectionFactory(redisConnectionFactory); return redisTemplate; } // 5 创建CacheManager @Bean public RedisCacheManager cacheManager() { RedisCacheManager redisCacheManager = new RedisCacheManager(springBootRedisCache(cacheConnectionFactory())); redisCacheManager.setLoadRemoteCachesOnStartup(true); // 启动时加载远程缓存 redisCacheManager.setUsePrefix(true); // 是否使用前缀生成器 redisCacheManager.setCachePrefix(cacheName -> ("LONGDAI_CACHE_" + cacheName + ":").getBytes()); redisCacheManager.setExpires(CacheConstants.getExpirationMap()); return redisCacheManager; } public RedisTemplate<String, Object> springBootRedisCache(@Qualifier("cacheConnectionFatory") RedisConnectionFactory redisConnectionFactory) { RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(redisConnectionFactory); redisTemplate.setEnableDefaultSerializer(false); redisTemplate.setKeySerializer(stringRedisSerializer()); redisTemplate.setValueSerializer(genericJackson2JsonRedisJsonSerializer()); redisTemplate.afterPropertiesSet(); return redisTemplate; } @Bean public StringRedisSerializer stringRedisSerializer() { return new StringRedisSerializer(); } @Bean public GenericJackson2JsonRedisSerializer genericJackson2JsonRedisJsonSerializer() { return new GenericJackson2JsonRedisSerializer(); } @Bean public KeyGenerator keyGenerator() { return (target, method, params) -> { StringBuilder sb = new StringBuilder(); sb.append(target.getClass().getName()); sb.append("_"); sb.append(method.getName()); sb.append("_"); for (int i = 0; i < params.length; i++) { sb.append(params[i].toString()); if (i != params.length - 1) { sb.append("_"); } } return sb.toString(); }; }}
public class CacheConstants { private CacheConstants() { } public static final String CACHE_NAME_TRANSFER_DEBT_LIST = "longdai_front_page_transferDebtsList"; public static final Long TRANSFER_DEBT_LIST_EXPIRATION_TIME_IN_SECONDS = 10 * 60L; public static final String CACHE_NAME_FUND_PLAN_LIST = "longdai_front_page_fundPlanList"; public static final Long FUND_PLAN_LIST_EXPIRATION_TIME_IN_SECONDS = 10 * 60L; public static final String CACHE_NAME_FUND_PLAN_DETAIL = "longdai_fund_plan_detail"; public static final Long FUND_PLAN_DETAIL_EXPIRATION_TIME_IN_SECONDS = 10 * 60L; public static Map<String,Long> getExpirationMap() { Map<String, Long> expirationMap = new HashMap<>(); expirationMap.put(CACHE_NAME_TRANSFER_DEBT_LIST, TRANSFER_DEBT_LIST_EXPIRATION_TIME_IN_SECONDS); expirationMap.put(CACHE_NAME_FUND_PLAN_LIST, FUND_PLAN_LIST_EXPIRATION_TIME_IN_SECONDS); expirationMap.put(CACHE_NAME_FUND_PLAN_DETAIL, FUND_PLAN_DETAIL_EXPIRATION_TIME_IN_SECONDS); return expirationMap; }}
TestController.java
/** * Created by jiyang on 16:10 2017/12/15 */@Controller@RequestMapping("/tester")public class TestController { @Autowired private CacheRequestService cacheRequestService; @Autowired private StringRedisTemplate stringRedisTemplate; @Value("${message.data.name:2}") private String name; @Value("${message.data.password:ps}") private String password; @RequestMapping(value = "/vip/upgrade", method = RequestMethod.GET) @ResponseBody public Object vipUpgrade() { cacheRequestService.listUsers(); return this.password; } @RequestMapping(value = "/v2", method = RequestMethod.GET) @ResponseBody public Object getV() { return stringRedisTemplate.opsForValue().get("channel_secret_key_00880001"); }}
阅读全文
0 0
- redis:spring-data-redis
- redis Jredis spring-data-redis
- spring data redis 操作redis
- Spring Data Redis (Redis Support)
- Spring Data Redis(Redis Transactions)
- Spring Data Redis(Redis Scripting)
- Spring Data Redis(Redis Cluster)
- Spring Data Redis(Redis Repositories)
- spring data redis 操作redis
- SPRING DATA - REDIS配置
- spring data redis试用
- SPRING DATA - REDIS配置
- SPRING DATA - REDIS配置
- Spring-Data-Redis特性
- Spring Data Redis
- spring-data-redis 使用
- spring-data集成redis
- spring-data-redis 使用
- 使用SQuirreL客户端工具配置连接 Phoenix
- 开关量视图
- 二分查找(对半查找)的实现
- xhr的jQuery用法总结
- IT风投
- spring data redis
- ESP8266--MQTT--ESP_MQTT固件开发笔记(五)
- springmvc请求参数获取的几种方法(转载)
- 神兽保佑,代码无bug
- HTML
- java spymemcached 简单使用
- 上传jar包到nexus私服
- Hadoop---NameNode详解
- Java实现时间和时间戳相互转换