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

儿童网站源码开发网站需要注意

儿童网站源码,开发网站需要注意,网站设计背景,图书商城网站开发的目的Redis的JAVA客户端 文章目录 Redis的JAVA客户端一、Redis的Java客户端的种类二、Jedis2.1、使用步骤2.2、Jedis连接池 三、[SpringDataRedis](https://spring.io/projects/spring-data-redis)3.1、介绍3.2、RedisTemplate3.3、SpringDataRedis使用步骤3.4、SpringDataRedis的序…Redis的JAVA客户端 文章目录 Redis的JAVA客户端一、Redis的Java客户端的种类二、Jedis2.1、使用步骤2.2、Jedis连接池 三、[SpringDataRedis](https://spring.io/projects/spring-data-redis)3.1、介绍3.2、RedisTemplate3.3、SpringDataRedis使用步骤3.4、SpringDataRedis的序列化方式 四、StringRedisTemplate4.1、解决方法4.2、**ObjectMapper介绍**4.3、StringRedisTemplate类 五、其它结构的使用 一、Redis的Java客户端的种类 二、Jedis Jedis是一个用于连接和与Redis服务器进行交互的Java客户端库。Redis是一个高性能的内存数据存储系统Jedis允许Java应用程序通过简单的API与Redis进行通信。 dependencygroupIdredis.clients/groupIdartifactIdjedis/artifactIdversion4.3.1/version/dependency2.1、使用步骤 获取Jedis连接 //设置主机地址和端口号 Jedis jedis new Jedis(192.168.74.1xx, 6379);给Jedis设置redis密码 // 设置密码认证 jedis.auth(123456);操作 HashMapString,String mapnew HashMap();map.put(id,1);map.put(name,radan);jedis.hset(user:1,map);System.out.println(jedis.hgetAll(user:1));释放连接 jedis.close();2.2、Jedis连接池 Jedis本身就是线程不安全的并且频繁的创建和销毁会有性能的损耗因此推荐使用Jedis连接池代替Jedis的直连方式。JedisPool JedisConnectionFactory 连接池配置类 public class JedisConnectionFactory {private static JedisPool jedisPool null;static {// 配置连接池JedisPoolConfig jedisPoolConfignew JedisPoolConfig();// 最大连接数jedisPoolConfig.setMaxIdle(8);// 最大空闲连接jedisPoolConfig.setMaxIdle(8);// 最小空闲连接jedisPoolConfig.setMinIdle(0);// 设置最长等待时间 msjedisPoolConfig.setMaxWaitMillis(200);jedisPool new JedisPool(jedisPoolConfig,192.168.74.128,6379);}// 获取Jedis对象public static Jedis getJedis(){return jedisPool.getResource();}public static void closeJedis(){jedisPool.close();} }三、SpringDataRedis 3.1、介绍 Spring Data Redis是Spring框架的一个模块用于简化在Java应用程序中与Redis数据库进行交互的过程。它提供了高级别的抽象和易于使用的API使得在Spring应用中使用Redis变得更加容易。 Spring Data Redis的一些关键特点和用途 Redis操作抽象化 Spring Data Redis抽象了与Redis数据库的交互允许你以面向对象的方式操作数据。你可以将Java对象存储在Redis中而不必担心底层的Redis命令。 注解支持 Spring Data Redis支持注解使得在Java类中定义Redis数据模型更加方便。你可以使用注解来标记实体类、字段和方法以指定它们与Redis数据之间的映射关系。 连接池管理 Spring Data Redis集成了连接池管理确保有效地管理Redis连接。这有助于提高性能和资源利用率。 声明式事务 你可以使用Spring的声明式事务管理来确保Redis操作的一致性。这使得在多个Redis命令之间进行原子性操作更加容易。 缓存支持 Spring Data Redis还提供了与Spring框架的缓存抽象集成使得可以轻松地将Redis用作应用程序的缓存存储。 查询支持 该模块允许你使用Spring表达式语言SpEL构建自定义查询以根据不同的条件检索数据。 Pub/Sub支持 Spring Data Redis支持发布/订阅模式允许你创建消息发布者和订阅者以便实现实时消息传递。 3.2、RedisTemplate SpringDataRedis中提供了RedisTemplate工具类其中封装了各种对Redis的操作。并且将不同数据类型的操作API封装到了不同的类型当中 3.3、SpringDataRedis使用步骤 SpringBoot已经提供了对SpringBootDataRedis的支持使用非常方便 引入依赖 !-- redis依赖 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId/dependency!-- 连接池依赖 --dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-pool2/artifactIdversion2.11.1/version/dependency配置文件 spring:redis:host: 192.168.74.128port: 6379password: 123456lettuce:pool:max-active: 8 # 最大连接max-idle: 8 # 最大空闲连接max-wait: 100 # 最小等待时间min-idle: 0 # 连接等待时间注入RedisTemplate Autowiredprivate RedisTemplate redisTemplate;测试 void test001(){// 插入一条数据redisTemplate.opsForValue().set(name,李四);// 读取一条数据Object name redisTemplate.opsForValue().get(name);System.out.println(namename);}解决方法 3.4、SpringDataRedis的序列化方式 可以自定义RedisTemplate的序列化方式代码如下 引入依赖 dependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-databind/artifactId/dependency编写配置类 要求RedisTemplate对象的键使用String类型值使用Object对象类型 Configuration public class RedisConfig {Beanpublic RedisTemplateString,Object redisTemplate(RedisConnectionFactory connectionFactory){// 创建RedisTemplate对象RedisTemplateString,Object redisTemplate new RedisTemplate();// 设置连接工厂redisTemplate.setConnectionFactory(connectionFactory);// 创建JSON序列化工具GenericJackson2JsonRedisSerializer jsonRedisSerializer new GenericJackson2JsonRedisSerializer();// 设置Key的序列化redisTemplate.setKeySerializer(RedisSerializer.string());redisTemplate.setHashKeySerializer(RedisSerializer.string());// 设置Value的序列化redisTemplate.setValueSerializer(jsonRedisSerializer);redisTemplate.setHashValueSerializer(jsonRedisSerializer);// 返 回return redisTemplate;}}测试结果 Testvoid test002(){// 插入一条数据redisTemplate.opsForValue().set(user:20,new User(张三,28));// 读取一条数据Object name redisTemplate.opsForValue().get(user:20);System.out.println(namename);}这样也有缺点为了在反序列化时知道对象的类型JSON序列化器会将类的class类型写入json结果中存入redis会带来额外的开销。 四、StringRedisTemplate 解决JSON序列化器会将类的class类型写入json结果中存入redis会带来额外的开销这一问题 4.1、解决方法 为了节省内存空间我们并不会使用JSON序列化器来处理Value而是统一使用String序列化器要求只能存储String类型的key和value。当需要存储Java对象时需要手动完成对象的序列化和反序列化。 Spring默认提供了一个StringRedisTemplate类它的key和value的序列化方式默认就是String方式。省去了我们自义RedisTemplate的过程: 4.2、ObjectMapper介绍 是Java编程语言中常用的库用于将Java对象与JSONJavaScript对象表示法数据之间进行转换。它是Jackson库的一部分提供了一套用于在Java中处理JSON的数据处理工具。 ObjectMapper主要使用方法 // 将Java对象序列化为JSON字符串String jsonString objectMapper.writeValueAsString(person); // 将JSON字符串反序列化为Java对象Person deserializedPerson objectMapper.readValue(jsonString, 需要待转的对象类.class);4.3、StringRedisTemplate类 StringRedisTemplate类的使用 SpringBootTest public class RedisString {Autowiredprivate StringRedisTemplate stringRedisTemplate;//引入ObjectMapperJSON处理类private static final ObjectMapper objectMapper new ObjectMapper();Testvoid testString() throws JsonProcessingException {User user new User(李四, 14);// 1.存数据// 将User对象转换为Json数据String jsonString objectMapper.writeValueAsString(user);System.out.println(jsonString); // {username:李四,age:14}stringRedisTemplate.opsForValue().set(name,jsonString);// 2.取数据String name stringRedisTemplate.opsForValue().get(name);System.out.println(name); // {username:李四,age:14}// 将JSON数据转为对象格式User user1 objectMapper.readValue(name, User.class);System.out.println(user1); // User(username李四, age14)} }之前的问题得到了解决 五、其它结构的使用 Hash结构的使用使用基本没有太大差别更多的是偏向Java代码的这种分格 代码 Testvoid test002(){// 存数据stringRedisTemplate.opsForHash().put(user:23,name,小王);stringRedisTemplate.opsForHash().put(user:23,age,6);// 取一个字段Object name stringRedisTemplate.opsForHash().get(user:23, name);System.out.println(name);// 取所有的字段MapObject, Object objectMap stringRedisTemplate.opsForHash().entries(user:23);System.out.println(objectMap);}测试
http://www.yutouwan.com/news/166848/

相关文章:

  • 购物网站页面布局备案的网站必须打开吗
  • 亚马逊怎么做网站推广广东个人 网站备案
  • 免费发布产品信息的网站专业营销型网站建设费用
  • 网站开发重庆电影网站怎么做要多少钱
  • wordpress建站模板下载官方网站开发用什么语言
  • 贵州网站推广电话淄博网站推广公司
  • 网站开发方倍工作室全国信息公示系统官网
  • 网站服务器租用价格 贴吧护肤品网站建设需求分析
  • 支付宝网站登录入口部标平台软件网站开发
  • 网站建设和编程wordpress 样式插件
  • 广告设计的基本流程步骤百度关键词seo
  • 北京哪家公司做网站好网站开发费用无形资产
  • 东莞制作公司网站做网站公司价格多少
  • 郑州企业网站托管公司wordpress文章点赞
  • 哪种语言做网站好免费房屋建设图纸网站有哪些
  • 替朋友做网站免费做logo设计的网站
  • 焊接加工东莞网站建设建设营销型网站的步骤
  • 建设牌官方网站最新经济新闻及其评论
  • 成都网站seo域名注册需要资料
  • 郑州网站制作郑州网站制作网站建站代码
  • 淘宝开店铺网站怎么做电子商务网站建设教学大纲
  • 免费网站空间申请怎么自己做公众号
  • 通州区网站快速排名方案快速开发网页工具
  • 家用电脑做网站装修公司网站
  • 不同类型的购物网站游戏网站logo制作
  • 做网站设计收入手机怎么建网站链接
  • 建筑公司查询网站吴中区企业网络推广
  • WordPress网站仿制国外手做网站
  • 资阳市网站seo郑州企业网络推广外包
  • seo网站权重石家庄的网站的公司