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

网站销售需要什么手续微信文章导入wordpress

网站销售需要什么手续,微信文章导入wordpress,民营医院网站建设,网页制作素材图片百度云文章目录 ⛄概述⛄快速入门❄️❄️导入依赖❄️❄️配置文件❄️❄️测试代码 ⛄数据化序列器⛄StringRedisTemplate⛄RedisTemplate的两种序列化实践方案总结 ⛄概述 SpringData是Spring中数据操作的模块,包含对各种数据库的集成,其中对Redis的集成模…

文章目录

  • ⛄概述
  • ⛄快速入门
    • ❄️❄️导入依赖
    • ❄️❄️配置文件
    • ❄️❄️测试代码
  • ⛄数据化序列器
  • ⛄StringRedisTemplate
  • ⛄RedisTemplate的两种序列化实践方案总结


在这里插入图片描述

在这里插入图片描述


⛄概述

SpringDataSpring中数据操作的模块,包含对各种数据库的集成,其中对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封装到了不同的类型中:

redisTemplate.opsForVaue()ValueOperations操作String
redisTemplate.opsForHash()HashOperations操作Hash
redisTemplate.opsForList()ListOperations操作List
redisTemplate.opsForSet()SetOperations操作Set
redisTemplate.opsForZSet()ZSetOperations操作ZSet

redisTemplate 可以操作一些通用命令.


⛄快速入门

SpringBoot已经提供了对SpringDataRedis的支持,使用非常简单:

❄️❄️导入依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.5.7</version><relativePath/> <!-- lookup parent from repository --></parent><name>redis-demo</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><!--redis依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><!--common-pool--><dependency><groupId>org.apache.commons</groupId><artifactId>commons-pool2</artifactId></dependency><!--Jackson依赖--><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins></build></project>

❄️❄️配置文件

spring:redis:host: ipport: 6379password: 密码lettuce:pool:max-active: 8  #最大连接max-idle: 8   #最大空闲连接min-idle: 0   #最小空闲连接max-wait: 100ms #连接等待时间

❄️❄️测试代码

@SpringBootTest
class RedisDemoApplicationTests {@Autowiredprivate RedisTemplate<String, Object> redisTemplate;@Testvoid testString() {// 写入一条String数据redisTemplate.opsForValue().set("name", "mayun");// 获取string数据Object name = redisTemplate.opsForValue().get("name");System.out.println("name = " + name);}
}

⛄数据化序列器

RedisTemplate可以接收任意Object作为值写入Redis:

只不过写入前会把Object序列化为字节形式,默认是采用JDK序列化,得到的结果是这样的:

\xAC\xED\x00\x05t......

缺点:

  • 可读性差
  • 内存占用较大

可以自定义如下配置:

@Configuration
public class RedisConfig {@Beanpublic RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory){// 创建RedisTemplate对象RedisTemplate<String, Object> template = new RedisTemplate<>();// 设置连接工厂template.setConnectionFactory(connectionFactory);// 创建JSON序列化工具GenericJackson2JsonRedisSerializer jsonRedisSerializer = new GenericJackson2JsonRedisSerializer();// 设置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 名称,目的是为了查询时实现自动反序列化。这会带来额外的内存开销。


⛄StringRedisTemplate

尽管之前 JSON 的序列化方式可以满足我们的需求,但依然存在一些问题,如下:

{"Class": "com.snow.Student","name": "wang","age": 18
}

为了在反序列化时知道对象的类型,JSON序列化器会将类的 class 类型写入json结果中,存入Redis,会带来额外的内存开销。

为了减少内存的消耗,我们可以采用手动序列化的方式,换句话说,就是不借助默认的序列化器,而是我们自己来控制序列化的动作,同时,我们只采用String的序列化器,这样,在存储value时,我们就不需要在内存中就不用多存储数据,从而节约我们的内存空间

这种用法比较普遍,因此SpringDataRedis就提供了RedisTemplate的子类:StringRedisTemplate,它的key和value的序列化方式默认就是String方式。省去了我们自定义RedisTemplate的序列化方式的步骤,而是直接使用:

@SpringBootTest
class RedisStringTests {@Autowiredprivate StringRedisTemplate stringRedisTemplate;@Testvoid testString() {// 写入一条String数据stringRedisTemplate.opsForValue().set("verify:phone:13600008888", "124143");// 获取string数据Object name = stringRedisTemplate.opsForValue().get("name");System.out.println("name = " + name);}private static final ObjectMapper mapper = new ObjectMapper();@Testvoid testSaveUser() throws JsonProcessingException {// 创建对象User user = new User("mayun", 21);// 手动序列化String json = mapper.writeValueAsString(user);// 写入数据stringRedisTemplate.opsForValue().set("user:200", json);// 获取数据String jsonUser = stringRedisTemplate.opsForValue().get("user:200");// 手动反序列化User user1 = mapper.readValue(jsonUser, User.class);System.out.println("user1 = " + user1);}
}

此时我们再来看一看存储的数据,小伙伴们就会发现那个class数据已经不在了,节约了我们的空间~

{"name": "wang","age": 18
}

⛄RedisTemplate的两种序列化实践方案总结

RedisTemplate 的两种序列化实践方案:

方案一
自定义 RedisTemplate
修改 RedisTemplate 的序列化器为 GenericJackson2JsonRedisSerializer
会占用额外的内存空间 记录字节码
方案二
使用 StringRedisTemplate
写入 Redis 时,手动把对象序列化为 JSON
读取 Redis 时,手动把读取到的 JSON 反序列化为对象

在这里插入图片描述


http://www.yayakq.cn/news/655578/

相关文章:

  • 企业网站制作建设的框架有哪几种网站建设项目中标通知
  • 响应式网站栅格网站开发三个月能学会吗
  • 九江做网站的公司建设银行培训网站
  • 合肥网站 技术支持 上诚科技网站说服力营销型网站策划
  • wordpress清空文章备份并对齐id兰州网络优化
  • 网站开发课程的心得wordpress教程 aliyun
  • 定制网站建设推广服务wordpress需要登录
  • 如何用ip地址做网站南阳网站建设价格
  • 摄影网站建设目的wordpress占用内存高
  • 汽车网站建设背景安徽住房建设厅官网信息查询
  • 南昌旅游网站建设方案企业网站建设实训报告体会
  • 无锡网站建设 君通科技服务器做网站流程
  • 汕头有没有做网站网站全局搜索如何做
  • 无锡网站制作楚天软件wordpress 纯代码 雪花
  • 注册了域名 网站怎么做做电商需要准备多少钱
  • 网站后台动态播放怎么做的沙洋网站开发
  • 网站企业案例上海开发小程序和app的公司
  • 南通市城乡和住房建设局网站wordpress模板自适应修改
  • 自己做的网站竞价优化网站后台登陆模板
  • 宠物网站建设进度表河南城乡建设网站
  • 网站做百度推广的要求宝安网站开发
  • 创建wordpress网站炫酷一些的网站
  • 网站建设与管理教学视频教程西南能矿建设工程公司网站
  • 怎样做淘宝客网站gif素材网站推荐
  • 怎么查网站流量城乡住房和城乡建设厅网站
  • 桂林网站建设制作创新设计案例100个
  • 成交型网站模板上传到服务器的网站打开是空白
  • 网站建设公司做销售前景好不好合同模板网站
  • 如何制作餐馆网站霸州网站设计
  • 制作一个动态企业网站广州网络推广招聘