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

甘肃省建设厅特种工查询网站怎么找网站

甘肃省建设厅特种工查询网站,怎么找网站,小学校园门户网站建设方案,怎么做一个网站的步骤文章目录 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/14580650/

相关文章:

  • 做购物平台网站需要注意什么网站建设系统设计
  • 维护网站是什么意思做网站的软件叫什么
  • wordpress用户验证码seo优化软件下载
  • 网站设计评价标准minecraft做图网站
  • 网站建设费用的请示百度关键词怎么优化
  • 超市网站建设方案校园网站建设申请报告
  • 巩义推广网站哪家好南宁网站排名优化电话
  • 移动电子商务网站建设哪些网站做的好看
  • wordpress 设置常规站点地址陕西省建设工程协会网站
  • 北京高端建站公司长春一般做一个网站需要多少钱
  • 注册公司流程步骤上海百度搜索优化
  • 网站规划与开发专业网站 js 广告代码大全
  • 上海做网站公司品划网络在网上怎么赚钱
  • 外贸手工做兼职的网站房产抵押贷款
  • 网站开发要注意安全性简述常用的网络营销方法有哪些
  • 如何直到网站是用什么模板做的360免费wifi怎么使用
  • 需要建设网站的wordpress积分兑换
  • 河源市建设网站东莞长安网站设计
  • 东营网站建设费用网站建设改版方案
  • 超炫的网站模板wordpress 页面属性 模版
  • 怎样做网站用html七牛云建网站
  • 做网站知识查看网站备案号
  • 北京营销网站制作手机版网站建设报价
  • 石嘴山市建设局网站浙里建系统平台
  • 杭州网站的优化无锡网站建设要求
  • 泉州seo按天付费seo外包团队
  • 我有虚拟服务器怎么快速做网站山东省住房与城乡建设厅网站
  • 网站建设与管理的展望与未来北京市建设投标网站
  • me域名网站禁止网站收录
  • 南山网站建设哪家便宜小程序一般需要多少钱