当前位置: 首页 > news >正文

坑人的网站链接怎么做广告公司好听的名字

坑人的网站链接怎么做,广告公司好听的名字,北京的建设网站公司,梅州做网站1.为什么需要缓存为什么需要缓存#xff0c;我相信搞开发的都能回答出来#xff0c;无非就是为了降低数据库压力#xff0c;节约资源#xff0c;提升系统性能。而事实上也确实是#xff0c;归根结底就是降压#xff0c;高并发#xff0c;高性能。不过#xff0c;大厂里…1.为什么需要缓存为什么需要缓存我相信搞开发的都能回答出来无非就是为了降低数据库压力节约资源提升系统性能。而事实上也确实是归根结底就是降压高并发高性能。不过大厂里那一套高并发的东西不在本篇讲述。下面我们就spring boot 整合redis 实现数据缓存的demo。2.搭建Springboot工程搭建spring boot工程此处就不多赘述了大家可以自己去官网下载然后导入或者直接用idea创建。引入的核心依赖如下另外还有其他的如mybatisthymeleaf等。org.springframework.boot spring-boot-starter-weborg.springframework.boot spring-boot-starter-data-redis 2.3.0.RELEASE3.Redis配置类ConfigurationEnableCachingpublic class RedisConfig extends CachingConfigurerSupport { Autowired private LettuceConnectionFactory lettuceConnectionFactory; Bean public RedisTemplate redisTemplate(LettuceConnectionFactory lettuceConnectionFactory) { RedisTemplate redisTemplate new RedisTemplate(); redisTemplate.setConnectionFactory(lettuceConnectionFactory); StringRedisSerializer stringRedisSerializer new StringRedisSerializer(); Jackson2JsonRedisSerializer jackson2JsonRedisSerializer new Jackson2JsonRedisSerializer(Object.class); ObjectMapper objectMapper new ObjectMapper(); objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); jackson2JsonRedisSerializer.setObjectMapper(objectMapper); // key采用String的序列化方式 redisTemplate.setKeySerializer(stringRedisSerializer); // hash的key也采用String的序列化方式 redisTemplate.setHashKeySerializer(stringRedisSerializer); // value序列化方式采用jackson redisTemplate.setValueSerializer(jackson2JsonRedisSerializer); // hash的value序列化方式采用jackson redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer); redisTemplate.afterPropertiesSet(); return redisTemplate; }}4.Redis工具类//大家可以根据需要再自行添加方法Componentpublic final class RedisUtil { Autowired private RedisTemplate redisTemplate; /** * 设置缓存:无过期时间 * param key * param value * return */ public boolean set(String key, Object value) { try { redisTemplate.opsForValue().set(key,value); return true; } catch (Exception e) { e.printStackTrace(); return false; } } /** * 设置缓存有过期时间单位秒 * param key * param value * param time * return */ public boolean set(String key, Object value, long time) { try { if(time 0) { redisTemplate.opsForValue().set(key,value,time, TimeUnit.SECONDS); }else { throw new RuntimeException(时间必须大于0); } return true; }catch (Exception e) { e.printStackTrace(); return false; } } /** * 普通缓存获取 * param key 键 * return 值 */ public Object get(String key) { return key null ? null : redisTemplate.opsForValue().get(key); } /** * 判断key是否存在 * param key 键 * return true 存在 false不存在 */ public boolean hasKey(String key) { try { return redisTemplate.hasKey(key); } catch (Exception e) { e.printStackTrace(); return false; } } /** * 指定key缓存失效时间 * param key 键 * param time 时间(秒) * return */ public boolean expire(String key, long time) { try { if (time 0) { redisTemplate.expire(key, time, TimeUnit.SECONDS); }else { throw new RuntimeException(时间必须大于0); } return true; } catch (Exception e) { e.printStackTrace(); return false; } } /** * 根据key 获取过期时间 * param key 键 不能为null * return 时间(秒) 返回0代表为永久有效 */ public long getExpire(String key) { return redisTemplate.getExpire(key, TimeUnit.SECONDS); } /** * 将list放入缓存 * param key 键 * param value 值 * return */ public boolean lSet(String key, List value) { try { redisTemplate.opsForList().rightPushAll(key, value); return true; } catch (Exception e) { e.printStackTrace(); return false; } } /** * 将list放入缓存 * param key 键 * param value 值 * param time 时间(秒) * return */ public boolean lSet(String key, List value, long time) { try { redisTemplate.opsForList().rightPushAll(key, value); if (time 0) { expire(key, time); } return true; } catch (Exception e) { e.printStackTrace(); return false; } }}5.测试Testvoid contextLoads() { if(redisTemplate.opsForValue().get(list) ! null) { LOGGER.info(走缓存了); List list (List) redisTemplate.opsForValue().get(list); System.out.println(list); }else { LOGGER.info(走数据库了); List list aaaServerService.findList(); redisTemplate.opsForValue().set(list,list); }}我们第一次运行这个测试类控制台打印如下图1再运行一次控制台打印如下图2。可以看到查询的数据从缓存中取了。我们还可以连接下redis直接 get list得到的结果如图3数据的确已经存入缓存至此spring boot整合redis就大功告成了图1图2图3小结本篇文章建单的介绍了spring boot如何整合redis相对来说没有什么难懂的地方。对于简单的业务层面来说这个已经足够了更深层次的还需要大家不断的学习探索。好了今天的文章就到这里了喜欢的小伙伴来个关注呗[呲牙]
http://www.zqtcl.cn/news/912937/

相关文章:

  • 怎样创建网站的代码此网站域名即将过期
  • 网页转向网站jquery图片效果网站
  • 山东定制网页建站wordpress是是什么技术
  • 无锡免费网站制作手游网页版
  • 东莞 网站建设 定制水寻找常州微信网站建设
  • 在门户网站做推广网站开发需要20万
  • 网站做电商销售需要注册吗上海的公司地址
  • 给网站做选题计算机网络技术电商网站建设与运营方向
  • 网站如何做熊掌号并绑定wordpress pdf
  • wordpress页面构建器中文文山seo公司
  • 凡科免费做网站蜂箱尺寸与制作图片
  • 完全不收费的聊天软件班级优化大师下载安装app
  • 合肥网站改版360免费建站永久免费
  • 商业网站建设案例课程 下载工信部企业网站认证
  • 泉州网站设计哪家公司好沈阳seo代理计费
  • 做景观素材有哪几个网站国内建网站费用
  • 驻马店重点项目建设网站wordpress常规选项
  • 网站开发 英文网站策划建设阶段的推广
  • 建立网站一般多少钱wordpress评论跳过验证
  • 南京每月做社保明细在哪个网站查看设计作品的网站软件
  • html怎么做网站如何在腾讯云上网站建设
  • 网站建设怎么链接表格手机做外贸有什么好的网站
  • 深圳开发网站建设哪家好外贸网络营销培训
  • 广州智迅网络做网站免费下载ps素材网站
  • 什么网站时候做伪静态开发软件定制
  • 找人做网站 多少钱西宁市公司网站建设
  • 网页设计 教程网站找权重高的网站方法
  • 网站建设本地还是外地重庆seo排名方法
  • 那个网站做网编好昨晚兰州发生了什么事
  • 温州建设局网站首页哪里可以学做资料员的网站