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

淘宝装修免费模板有哪些网站群晖做网站服务器会卡吗

淘宝装修免费模板有哪些网站,群晖做网站服务器会卡吗,seo关键词优化推荐,seo是什么品牌文章目录 1. SpringDataRedis 概述2. 快速入门2.1 导入pom坐标2.2 配置文件2.3 测试代码2.4 数据序列化器2.5 StringRedisTemplate2.6 总结 1. SpringDataRedis 概述 SpringData 是Spring 中数据操作的模块#xff0c;包含对各种数据库的集成#xff0c;其中对Redis的集成模… 文章目录 1. SpringDataRedis 概述2. 快速入门2.1 导入pom坐标2.2 配置文件2.3 测试代码2.4 数据序列化器2.5 StringRedisTemplate2.6 总结 1. SpringDataRedis 概述 SpringData 是Spring 中数据操作的模块包含对各种数据库的集成其中对Redis的集成模块就叫做 SpringDataRedis官网地址https://spring.io/projects/spring-data-redis 提供了对不同Redis客户端的整合Lettuce和Jedis提供了RedisTemplate统一API来操作Redis支持Redis的发布订阅模型支持Redis哨兵和Redis集群支持基于Lettuce的响应式编程支持基于JDK.JSON.字符串.Spring对象的数据序列化及反序列化支持基于Redis的JDKCollection实现 SpringDataRedis中提供了RedisTemplate工具类其中封装了各种对Redis的操作。并且将不同数据类型的操作API封装到了不同的类型中 2. 快速入门 SpringBoot 已经提供了对 SpringDataRedis 的支持使用非常简单 2.1 导入pom坐标 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.5.7/versionrelativePath/ !-- lookup parent from repository --/parentgroupIdcom.snow/groupIdartifactIdstudyRedis/artifactIdversion1.0/versionpropertiesjava.version1.8/java.versionmaven.compiler.source8/maven.compiler.sourcemaven.compiler.target8/maven.compiler.target/propertiesdependencies!--redis依赖--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId/dependency!--common-pool--dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-pool2/artifactId/dependencydependencygroupIdcom.alibaba/groupIdartifactIdfastjson/artifactIdversion1.2.70/version/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdconfigurationexcludesexcludegroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/exclude/excludes/configuration/plugin/plugins/build/project2.2 配置文件 spring:redis:host: 192.168.98.98port: 6379password: snowlettuce:pool:max-active: 8 #最大连接max-idle: 8 #最大空闲连接min-idle: 0 #最小空闲连接max-wait: 100ms #连接等待时间2.3 测试代码 SpringBootTest class RedisDemoApplicationTests {Autowiredprivate RedisTemplateString, Object redisTemplate;Testvoid testString() {// 写入一条String数据redisTemplate.opsForValue().set(age, 20);// 获取string数据Object age redisTemplate.opsForValue().get(age );System.out.println(age age );} }2.4 数据序列化器 RedisTemplate 可以接收任意 Object 作为值写入 Redis。 只不过写入前会把Object序列化为字节形式默认是采用JDK序列化得到的结果是这样的 缺点 可读性差内存占用较大 我们可以自定义 RedisTemplate 的序列化方式代码如下 Configuration public class RedisConfig {Beanpublic RedisTemplateString, Object redisTemplate(RedisConnectionFactory connectionFactory){// 创建 RedisTemplate 对象RedisTemplateString, Object template new RedisTemplate();// 设置连接工厂template.setConnectionFactory(connectionFactory);// 创建 Fastjson 序列化工具FastJsonRedisSerializerObject jsonRedisSerializer new FastJsonRedisSerializer(Object.class);// 设置 Key 序列化template.setKeySerializer(RedisSerializer.string());template.setHashKeySerializer(RedisSerializer.string());// 设置 Value 序列化template.setValueSerializer(jsonRedisSerializer);template.setHashValueSerializer(jsonRedisSerializer);// 返回return template;} }这里采用了 JSON 序列化来代替默认的 JDK 序列化方式。最终结果如图 整体可读性有了很大提升并且能将Java对象自动的序列化为JSON字符串并且查询时能自动把JSON反序列化为Java对象。 不过其中记录了序列化时对应的 class 名称目的是为了查询时实现自动反序列化。这会带来额外的内存开销。 2.5 StringRedisTemplate 尽管之前 JSON 的序列化方式可以满足我们的需求但依然存在一些问题如图 为了在反序列化时知道对象的类型JSON序列化器会将类的class类型写入json结果中存入Redis会带来额外的内存开销。 为了减少内存的消耗我们可以采用手动序列化的方式换句话说就是不借助默认的序列化器而是我们自己来控制序列化的动作同时我们只采用String的序列化器这样在存储value时我们就不需要在内存中就不用多存储数据从而节约我们的内存空间 这种用法比较普遍因此 SpringDataRedis 就提供了 RedisTemplate 的子类StringRedisTemplate它的key和value的序列化方式默认就是String方式。 省去了我们自定义RedisTemplate的序列化方式的步骤而是直接使用 SpringBootTest class RedisStringTests {Autowiredprivate StringRedisTemplate stringRedisTemplate;Testvoid testSaveUser() {// 写入一条String数据ValueOperationsString, String opsForValue stringRedisTemplate.opsForValue();Student student new Student(2, swallow, 12);opsForValue.set(swallow, JSON.toJSONString(student));}}此时我们再来看一看存储的数据小伙伴们就会发现那个class数据已经不在了节约了我们的空间(节约了一半呢~~~)~ 当使用了 fastjson 作为序列化方式后也可以使用 redisTemplate Testvoid testString3() {// 写入一条String数据ValueOperations opsForValue redisTemplate.opsForValue();Student student new Student(12, 刘德华, 42);opsForValue.set(liudehua, student);System.out.println(liudehua: opsForValue.get(liudehua));}2.6 总结 RedisTemplate的两种序列化实践方案 方案一 自定义RedisTemplate 修改RedisTemplate的序列化器为GenericJackson2JsonRedisSerializer 会占用额外的内存空间 记录字节码 方案二 使用StringRedisTemplate写入Redis时手动把对象序列化为JSON读取Redis时手动把读取到的JSON反序列化为对象
http://www.hkea.cn/news/14259626/

相关文章:

  • 济南自适应网站建设过期的网站域名
  • 网站切图规范深圳建站公司企业
  • xyz域名的网站有哪些云网站建设的意义
  • 网站建设实训教程石家庄住建局网站
  • 深圳做的好的电子行业招聘网站汕头专业网站建设公司
  • 开放大学门户网站建设方案wordpress播放swf插件
  • 清河网站建设多少钱兰州网站怎么建设
  • 学院网站建设项目怎样写企业网站建设方案
  • 做网站 视频加载太慢服装设计公司名称
  • 竹子建设网站中国建设工程网站
  • 宁波做网站的广州市城乡建设信息中心网站
  • 关于建设网站的书本石林彝族网站建设
  • 网站后台放在哪里新建的网站 找不到了
  • 网站域名服务器建设工程包括哪几类工程
  • 公司静态网站模板下载百度关键词搜索引擎
  • 百度官方网站下载安装2022年房地产太惨了
  • 摩托车网站建设工会网站开发需求分析
  • 免费论坛建站阳江房产网最新楼盘精装修
  • 有域名怎么免费建站建网上商城的第三方网站哪个好
  • 大连响应式网站建设同城信息小程序源码
  • 网上购物网站建设成都城乡建设部网站首页
  • 网站 head关键字 密度 多少字wordpress主菜单
  • 医院网站和微信公众号建设方案江苏省高职重点专业群建设网站
  • 建设电影网站的关键西宁网站建设哪家强
  • 做网站js是什么wordpress怎么播放视频播放器
  • 网站维护费用计入什么科目济宁网站建设 中企动力临沂
  • wordpress更换主题方法天机seo
  • 济南快速建站模板域名购买推荐
  • 海南做网站的公司wordpress 菜单栏高亮
  • 做网站用什么配置的笔记本上海企炬做的网站