package com.weixin.config;
import org.apache.ibatis.cache.Cache;
import org.slf4j.Logger;
import org.springframework.data.redis.core.RedisCallback;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
public class RedisConfig implements Cache {
private static final Logger logger = org.slf4j.LoggerFactory.getLogger(RedisConfig.class);
private final ReadWriteLock readWriteLock = new ReentrantReadWriteLock();
private String id; // cache instance id
private RedisTemplate redisTemplate;
private static final long EXPIRE_TIME_IN_MINUTES = 30; // redis过期时间
private static final String DEFAULT_ID = "default_id";
public RedisConfig(String id) {
if (id == null) {
id = DEFAULT_ID;
}
this.id = id;
}
public void setId(String id ){
this.id = id;
}
@Override
public String getId() {
return id;
}
/**
* Put query result to redis
*
* @param key
* @param value
*/
@Override
@SuppressWarnings("unchecked")
public void putObject(Object key, Object value) {
try {
RedisTemplate redisTemplate = getRedisTemplate();
ValueOperations opsForValue = redisTemplate.opsForValue();
opsForValue.set(key, value, EXPIRE_TIME_IN_MINUTES, TimeUnit.MINUTES);
logger.debug("Put query result to redis");
} catch (Throwable t) {
logger.error("Redis put failed", t);
}
}
/**
* Get cached query result from redis
*
* @param key
* @return
*/
@Override
public Object getObject(Object key) {
try {
RedisTemplate redisTemplate = getRedisTemplate();
ValueOperations opsForValue = redisTemplate.opsForValue();
logger.debug("Get cached query result from redis");
return opsForValue.get(key);
} catch (Throwable t) {
logger.error("Redis get failed, fail over to db", t);
return null;
}
}
/**
* Remove cached query result from redis
*
* @param key
* @return
*/
@Override
@SuppressWarnings("unchecked")
public Object removeObject(Object key) {
try {
RedisTemplate redisTemplate = getRedisTemplate();
redisTemplate.delete(key);
logger.debug("Remove cached query result from redis");
} catch (Throwable t) {
logger.error("Redis remove failed", t);
}
return null;
}
/**
* Clears this cache instance
*/
@Override
public void clear() {
RedisTemplate redisTemplate = getRedisTemplate();
redisTemplate.execute((RedisCallback) connection -> {
connection.flushDb();
return null;
});
logger.debug("Clear all the cached query result from redis");
}
/**
* This method is not used
*
* @return
*/
@Override
public int getSize() {
return 0;
}
@Override
public ReadWriteLock getReadWriteLock() {
return readWriteLock;
}
private RedisTemplate getRedisTemplate() {
if (redisTemplate == null) {
redisTemplate = ApplicationContextHolder.getBean("redisTemplate");
}
//spring-data-redis的RedisTemplate<K, V>模板类在操作redis时默认使用JdkSerializationRedisSerializer来进行序列化
//一下修改为String类型序列化 解决redis库中 K V 出现 xAC\xED\x00\x05t\x00\x04 问题
RedisSerializer stringSerializer = new StringRedisSerializer();
redisTemplate.setKeySerializer(stringSerializer);
// redisTemplate.setValueSerializer(stringSerializer);
redisTemplate.setHashKeySerializer(stringSerializer);
// redisTemplate.setHashValueSerializer(stringSerializer);
return redisTemplate;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
spring boot + mysql +mybatis +redis(二级缓存)实例 (104个子文件)
RedisConfig.class 5KB
SpringBootTest.class 2KB
HttpRequestUtil.class 2KB
ApplicationContextHolder.class 1KB
StudentServiceImpl.class 1KB
BaseServiceImpl.class 957B
Student.class 930B
BaseDaoImpl.class 913B
SpringApplicationMain.class 710B
StudentMapper.class 385B
BaseService.class 322B
BaseDao.class 310B
StudentService.class 255B
weixin.iml 8KB
RedisConfig.java 4KB
SpringBootTest.java 2KB
HttpRequestUtil.java 2KB
ApplicationContextHolder.java 1KB
StudentServiceImpl.java 670B
Student.java 565B
StudentMapper.java 482B
SpringApplicationMain.java 337B
BaseServiceImpl.java 308B
BaseDaoImpl.java 295B
StudentService.java 205B
BaseDao.java 139B
BaseService.java 137B
workspace.xml 53KB
uiDesigner.xml 9KB
pom.xml 3KB
encodings.xml 1KB
Maven__org_springframework_boot_spring_boot_test_autoconfigure_1_5_3_RELEASE.xml 769B
Maven__org_springframework_boot_spring_boot_starter_data_redis_1_5_3_RELEASE.xml 769B
Maven__org_springframework_boot_spring_boot_starter_logging_1_5_3_RELEASE.xml 748B
Maven__org_springframework_boot_spring_boot_starter_tomcat_1_5_3_RELEASE.xml 741B
Maven__org_springframework_boot_spring_boot_autoconfigure_1_5_3_RELEASE.xml 734B
Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_1_3_0.xml 730B
Maven__org_springframework_boot_spring_boot_starter_test_1_5_3_RELEASE.xml 727B
Maven__org_springframework_boot_spring_boot_starter_jdbc_1_5_3_RELEASE.xml 727B
Maven__org_springframework_boot_spring_boot_starter_web_1_5_3_RELEASE.xml 720B
Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml 700B
Maven__org_springframework_data_spring_data_commons_1_13_3_RELEASE.xml 699B
Maven__org_springframework_data_spring_data_keyvalue_1_2_3_RELEASE.xml 699B
Maven__org_springframework_spring_context_support_4_3_8_RELEASE.xml 693B
Maven__org_springframework_boot_spring_boot_starter_1_5_3_RELEASE.xml 692B
Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_1_3_0.xml 688B
Maven__org_springframework_data_spring_data_redis_1_8_3_RELEASE.xml 678B
Maven__org_springframework_boot_spring_boot_test_1_5_3_RELEASE.xml 671B
Maven__org_apache_tomcat_embed_tomcat_embed_websocket_8_5_14.xml 660B
Maven__org_springframework_spring_expression_4_3_8_RELEASE.xml 658B
StudentMapper.xml 650B
StudentMapper.xml 650B
Maven__com_fasterxml_jackson_core_jackson_annotations_2_8_0.xml 644B
Maven__org_springframework_spring_context_4_3_12_RELEASE.xml 644B
Maven__org_springframework_boot_spring_boot_1_5_3_RELEASE.xml 636B
Maven__org_hibernate_hibernate_validator_5_3_5_Final.xml 634B
Maven__org_springframework_spring_webmvc_4_3_8_RELEASE.xml 630B
Maven__org_apache_tomcat_embed_tomcat_embed_core_8_5_14.xml 625B
compiler.xml 624B
Maven__com_fasterxml_jackson_core_jackson_databind_2_8_8.xml 623B
Maven__org_springframework_spring_beans_4_3_8_RELEASE.xml 623B
Maven__org_springframework_spring_core_4_3_8_RELEASE.xml 616B
Maven__org_springframework_spring_jdbc_4_3_8_RELEASE.xml 616B
Maven__org_springframework_spring_test_4_3_8_RELEASE.xml 616B
Maven__javax_validation_validation_api_1_1_0_Final.xml 611B
Maven__org_apache_tomcat_embed_tomcat_embed_el_8_5_14.xml 611B
Maven__org_springframework_spring_oxm_4_3_8_RELEASE.xml 609B
Maven__org_springframework_spring_web_4_3_8_RELEASE.xml 609B
Maven__org_springframework_spring_aop_4_3_8_RELEASE.xml 609B
Maven__org_jboss_logging_jboss_logging_3_3_1_Final.xml 608B
Maven__org_springframework_spring_tx_4_3_8_RELEASE.xml 602B
Maven__com_fasterxml_jackson_core_jackson_core_2_8_8.xml 595B
Maven__ch_qos_logback_logback_classic_1_1_11.xml 575B
Maven__mysql_mysql_connector_java_5_1_41.xml 574B
Maven__org_apache_commons_commons_pool2_2_4_2.xml 570B
Maven__org_slf4j_log4j_over_slf4j_1_7_25.xml 562B
Maven__org_apache_tomcat_tomcat_jdbc_8_5_14.xml 559B
Maven__org_apache_tomcat_tomcat_juli_8_5_14.xml 559B
Maven__ch_qos_logback_logback_core_1_1_11.xml 554B
Maven__org_hamcrest_hamcrest_library_1_3.xml 553B
Maven__org_mockito_mockito_core_1_10_19.xml 549B
Maven__org_mybatis_mybatis_spring_1_3_1.xml 549B
Maven__org_slf4j_jcl_over_slf4j_1_7_25.xml 548B
Maven__com_jayway_jsonpath_json_path_2_2_0.xml 546B
Maven__net_minidev_accessors_smart_1_1.xml 542B
Maven__org_skyscreamer_jsonassert_1_4_0.xml 537B
Maven__org_assertj_assertj_core_2_6_0.xml 535B
Maven__org_slf4j_jul_to_slf4j_1_7_25.xml 534B
Maven__org_hamcrest_hamcrest_core_1_3.xml 532B
Maven__com_fasterxml_classmate_1_3_3.xml 522B
Maven__net_minidev_json_smart_2_2_1.xml 521B
Maven__com_alibaba_fastjson_1_2_41.xml 514B
Maven__org_slf4j_slf4j_api_1_7_25.xml 513B
Maven__org_objenesis_objenesis_2_1.xml 508B
Maven__org_mybatis_mybatis_3_4_4.xml 500B
Maven__org_yaml_snakeyaml_1_17.xml 495B
Maven__redis_clients_jedis_2_9_0.xml 494B
misc.xml 475B
Maven__org_ow2_asm_asm_5_0_3.xml 472B
Maven__junit_junit_4_12.xml 455B
共 104 条
- 1
- 2
资源评论
- qq_343801602018-04-28资料还没看
- hxl2082018-11-02学习中,谢谢大神
JasonHector
- 粉丝: 29
- 资源: 14
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功