前言:

目前公司项目在上一个技术架构的处理,已经搭建好了Redis,但redis只用在了做session的管理,然而 后台的对象缓存没有用上
1. redis 和 ehcache的区别:
简单了解了下,个人觉得 从部署上而言,redis更适合分布式部署,ehcache是在每台应用服务器上开辟一块内存做缓存,集群时还得考虑缓存的情况, redis就不需要考虑缓存了、单独部署在一台服务器中(也可以是在某一台应用服务器中)
2. 项目配置(spring mvc+maven+mybaits+redis),这里只讲Spring 集成 redis:
a. 配置 pom.xml 文件 (若不是maven管理项目,下载2个jar 即可 )
<!-- 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>
<!-- redis cache related.....end -->
b.配置 applicationContext.xml文件
先在<beans>中加入 cache缓存
xmlns:cache="http://www.springframework.org/schema/cache" xsi:schemaLocation="http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-4.2.xsd"
在Spring加载redis配置
<!-- ******************** redis缓存 **********************-->
<!-- 注解一定要配置,不然不起作用 -->
<cache:annotation-driven />
<!-- jedis 配置 -->
<bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxIdle" value="${redis.maxIdle}" />
<!--<property name="maxWaitMillis" value="${redis.maxWait}" />-->
<property name="testOnBorrow" value="${redis.testOnBorrow}" />
</bean>
<!-- redis服务器中心 -->
<bean id="connectionFactory"
class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
<property name="poolConfig" ref="poolConfig" />
<property name="port" value="${redis.port}" />
<property name="hostName" value="${redis.hostname}" />
<!-- <property name="password" value="${redis.password}" /> -->
<property name="timeout" value="${redis.timeout}"></property>
</bean>
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
<property name="connectionFactory" ref="connectionFactory" />
<property name="keySerializer">
<bean
class="org.springframework.data.redis.serializer.StringRedisSerializer" />
</property>
<property name="valueSerializer">
<bean
class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer" />
</property>
</bean>
<!-- 配置缓存 -->
<bean id="cacheManager" class="org.springframework.data.redis.cache.RedisCacheManager">
<constructor-arg ref="redisTemplate" />
</bean>
<!-- ******************** redis缓存 **********************-->
c.配置 application.properties 资源文件
#redis config #redis.hostname=192.168.242.131 redis.hostname=localhost redis.port=6379 redis.timeout=2000 redis.usePool=true redis.default.db=0 #\u6700\u5927\u5206\u914D\u7684\u5BF9\u8C61\u6570 redis.maxTotal=600 #\u6700\u5927\u80FD\u591F\u4FDD\u6301idel\u72B6\u6001\u7684\u5BF9\u8C61\u6570 redis.maxIdle=300 #\u591A\u957F\u65F6\u95F4\u68C0\u67E5\u4E00\u6B21\u8FDE\u63A5\u6C60\u4E2D\u7A7A\u95F2\u7684\u8FDE\u63A5 redis.timeBetweenEvictionRunsMillis=30000 #\u7A7A\u95F2\u8FDE\u63A5\u591A\u957F\u65F6\u95F4\u540E\u4F1A\u88AB\u6536\u56DE redis.minEvictableIdleTimeMillis=30000 #\u5F53\u8C03\u7528borrow Object\u65B9\u6CD5\u65F6\uFF0C\u662F\u5426\u8FDB\u884C\u6709\u6548\u6027\u68C0\u67E5 redis.testOnBorrow=true ########reids\u7F16\u7801\u683C\u5F0F redis.encode=utf-8 ######\u7F13\u5B58\u8FC7\u671F\u65F6\u95F4 \u79D2 1000*60*60*24*7 \u4E03\u5929 redis.expire=604800000 ####\u662F\u5426\u5F00\u542FRedis\u670D\u52A1\u5E94\u7528 redis.unlock=false
3. 测试
@Service("testService")
public class TestServiceImpl implements ITestService {
@Resource
private ITestDao testDao;
@Cacheable(value="testId",key="'id_'+#id")
public Test getTestById(int id) {
return this.testDao.getObjById(id);
}
@CacheEvict(value="testId",key="'id_'+#id")
public void removeTestById(int id) {
}
}
结果:
第一次 进入Service方法
第二次 不进入service方法 也得到了值
注: 有朋友会问,启动访问时保错, 那是因为本地未启动redis服务, 下载win32/win64版的,启动 再访问就不会报错
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# spring
# redis缓存注解
# spring4
# redis
# 注解
# 详解Spring缓存注解@Cacheable
# @CachePut
# @CacheEvict使用
# spring boot+spring cache实现两级缓存(redis+caffeine)
# Spring Boot 中使用cache缓存的方法
# SpringBoot手动使用EhCache的方法示例
# 详解springboot整合ehcache实现缓存机制
# springboot集成spring cache缓存示例代码
# SpringCache快速使用及入门案例
# 是在
# 就不
# 器中
# 好了
# 一台
# 还得
# 也得
# 报错
# 在上
# 用在
# 若不是
# 先在
# 那是因为
# 更适合
# 大家多多
# 每台
# 不起作用
# 只讲
# 器上
# 加载
相关文章:
如何快速搭建二级域名独立网站?
头像制作网站在线制作软件,dw网页背景图像怎么设置?
如何快速上传建站程序避免常见错误?
赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?
如何在阿里云ECS服务器部署织梦CMS网站?
如何设计高效校园网站?
北京建设网站制作公司,北京古代建筑博物馆预约官网?
深圳网站制作的公司有哪些,dido官方网站?
如何在Golang中使用replace替换模块_指定本地或远程路径
如何挑选优质建站一级代理提升网站排名?
如何在VPS电脑上快速搭建网站?
建站之星客服服务时间及联系方式如何?
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
如何批量查询域名的建站时间记录?
免费制作小说封面的网站有哪些,怎么接网站批量的封面单?
,柠檬视频怎样兑换vip?
网站代码制作软件有哪些,如何生成自己网站的代码?
哈尔滨网站建设策划,哈尔滨电工证查询网站?
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
上海网站制作开发公司,上海买房比较好的网站有哪些?
网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?
如何高效生成建站之星成品网站源码?
建站上传速度慢?如何优化加速网站加载效率?
制作旅游网站html,怎样注册旅游网站?
个人网站制作流程图片大全,个人网站如何注销?
网站制作公司排行榜,抖音怎样做个人官方网站
一键网站制作软件,义乌购一件代发流程?
如何快速选择适合个人网站的云服务器配置?
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
陕西网站制作公司有哪些,陕西凌云电器有限公司官网?
建站之星后台密码遗忘如何找回?
如何制作一个表白网站视频,关于勇敢表白的小标题?
Java解压缩zip - 解压缩多个文件或文件夹实例
如何破解联通资金短缺导致的基站建设难题?
c++怎么用jemalloc c++替换默认内存分配器【性能】
外贸公司网站制作,外贸网站建设一般有哪些步骤?
如何选择高效稳定的ISP建站解决方案?
如何在香港免费服务器上快速搭建网站?
七夕网站制作视频,七夕大促活动怎么报名?
上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?
如何快速查询网站的真实建站时间?
黑客入侵网站服务器的常见手法有哪些?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
如何解决VPS建站LNMP环境配置常见问题?
枣阳网站制作,阳新火车站打的到仙岛湖多少钱?
php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】
C++如何编写函数模板?(泛型编程入门)
微信小程序 五星评分(包括半颗星评分)实例代码
如何高效搭建专业期货交易平台网站?
如何快速登录WAP自助建站平台?
*请认真填写需求信息,我们会在24小时内与您取得联系。