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

专业做苗木的网站百度竞价推广运营

专业做苗木的网站,百度竞价推广运营,wordpress添加404页面模板,浙江省政府 加强政府网站建设方案Spring Boot 整合 Redis 相当简单,它利用了 Spring Data Redis 项目,使得我们可以在 Spring Boot 应用中轻松地操作 Redis。以下是如何整合 Redis 到 Spring Boot 应用的基本步骤: 1. 添加依赖 首先,在你的 pom.xml 文件中添加 …

Spring Boot 整合 Redis 相当简单,它利用了 Spring Data Redis 项目,使得我们可以在 Spring Boot 应用中轻松地操作 Redis。以下是如何整合 Redis 到 Spring Boot 应用的基本步骤:

1. 添加依赖

首先,在你的 pom.xml 文件中添加 Spring Boot Data Redis 的依赖:

<dependencies>  <!-- 其他依赖 -->  <dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-data-redis</artifactId>  </dependency>  <!-- 如果使用Lettuce作为Redis客户端,需要添加此依赖 -->  <dependency>  <groupId>io.lettuce</groupId>  <artifactId>lettuce-core</artifactId>  </dependency>  <!-- 如果使用Jedis作为Redis客户端,需要添加此依赖 -->  <dependency>  <groupId>redis.clients</groupId>  <artifactId>jedis</artifactId>  </dependency>  
</dependencies>

注意:Lettuce和Jedis是Spring Boot支持的两个主要的Redis客户端,你可以选择其中一个。在Spring Boot 2.x中,默认使用Lettuce。 

2. 配置 Redis

在 application.properties 或 application.yml 文件中添加 Redis 的配置信息:

application.properties 示例

spring.redis.host=localhost  
spring.redis.port=6379  
spring.redis.password= # 如果设置了密码,则填写密码  
spring.redis.database=0 # Redis数据库索引(默认为0)  
spring.redis.jedis.pool.max-active=8 # 连接池最大连接数(使用Jedis时)  
spring.redis.jedis.pool.max-wait=-1ms # 连接池最大阻塞等待时间(使用Jedis时)  
spring.redis.jedis.pool.max-idle=8 # 连接池中的最大空闲连接(使用Jedis时)  
spring.redis.jedis.pool.min-idle=0 # 连接池中的最小空闲连接(使用Jedis时)  
spring.redis.lettuce.pool.max-active=8 # 连接池最大连接数(使用Lettuce时)  
spring.redis.lettuce.pool.max-wait=-1ms # 连接池最大阻塞等待时间(使用Lettuce时)  
spring.redis.lettuce.pool.max-idle=8 # 连接池中的最大空闲连接(使用Lettuce时)  
spring.redis.lettuce.pool.min-idle=0 # 连接池中的最小空闲连接(使用Lettuce时)

application.yml 示例

spring:  redis:  host: localhost  port: 6379  password: # 如果设置了密码,则填写密码  database: 0 # Redis数据库索引(默认为0)  jedis:  pool:  max-active: 8 # 连接池最大连接数(使用Jedis时)  max-wait: -1ms # 连接池最大阻塞等待时间(使用Jedis时)  max-idle: 8 # 连接池中的最大空闲连接(使用Jedis时)  min-idle: 0 # 连接池中的最小空闲连接(使用Jedis时)  lettuce:  pool:  max-active: 8 # 连接池最大连接数(使用Lettuce时)  max-wait: -1ms # 连接池最大阻塞等待时间(使用Lettuce时)  max-idle: 8 # 连接池中的最大空闲连接(使用Lettuce时)  min-idle: 0 # 连接池中的最小空闲连接(使用Lettuce时)

这里要说的是:

Lettuce和Jedis两者都是Java连接Redis的客户端

选择使用Lettuce而不是Jedis的原因如下:

线程安全性:
  • Lettuce 是基于 Netty 构建的,它使用异步和事件驱动的方式处理连接。因此,它可以在多个线程之间共享一个连接而不需要额外的同步,因此在高并发环境下更高效。
  • Jedis 是基于阻塞 I/O 的,并且不是线程安全的,如果在多个线程中共享同一个 Jedis 实例,需要使用连接池进行同步管理,这可能引入额外的复杂性。
连接方式:
  • Lettuce 支持基于 Reactive Streams 的响应式编程模型,能够更好地与 Spring Reactor、Project Reactor 等框架集成,提供异步和非阻塞的操作。
  • Jedis 是同步的,并且在执行某些操作时会阻塞线程,这可能会影响应用程序的性能和响应性。
性能和扩展性:
  • Lettuce 的设计目标是高性能和扩展性,它可以更好地利用 Redis 4.0 中引入的一些新特性(如 Redis Sentinel 和 Redis Cluster)。
  • Jedis 的设计目标更偏向于简单易用,对于一些特殊的 Redis 集群模式可能支持不够完善。
维护和更新:
  • Lettuce 是一个活跃的项目,并且持续地得到更新和改进。
  • Jedis 在某些方面已经相对稳定,并且在一段时间内没有大的更新。

3. 创建 Redis 配置类

如果需要自定义 Redis 的配置(比如序列化器),可以创建一个配置类:

import org.springframework.context.annotation.Bean;  
import org.springframework.context.annotation.Configuration;  
import org.springframework.data.redis.connection.RedisConnectionFactory;  
import org.springframework.data.redis.core.RedisTemplate;  
import org.springframework.data.redis.serializer.StringRedisSerializer;  @Configuration  
public class RedisConfig {  @Bean  public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {  RedisTemplate<String, Object> template = new RedisTemplate<>();  template.setConnectionFactory(redisConnectionFactory);  // 使用 StringRedisSerializer 来序列化和反序列化 key 值  template.setKeySerializer(new StringRedisSerializer());  // 使用 JdkSerializationRedisSerializer 来序列化和反序列化 value 值  // 你也可以自定义序列化器  template.setValueSerializer(new GenericToStringSerializer<>(Object.class));  template.afterPropertiesSet();  return template;  }  
}

4. 使用 RedisTemplate 或 StringRedisTemplate

在 Spring Boot 应用中,你可以注入 RedisTemplate 或 StringRedisTemplate 来操作 Redis:

import org.springframework.beans.factory.annotation.Autowired;  
import org.springframework.data.redis.core.RedisTemplate;  
import org.springframework.stereotype.Service;  @Service  
public class RedisService {  private final RedisTemplate<String, Object> redisTemplate;  @Autowired  public RedisService(RedisTemplate<String, Object> redisTemplate) {  this.redisTemplate = redisTemplate;  }  public void setValue(String key, Object value) {  redisTemplate.opsForValue().set(key, value);  }  public Object getValue(String key) {  return redisTemplate.opsForValue().get(key);  }  // 其他操作...  
}

5. 编写测试

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.StringRedisTemplate;import java.util.concurrent.TimeUnit;@SpringBootTest
public class RedisTest {@Autowiredprivate StringRedisTemplate stringRedisTemplate;@Test//测试redisvoid contextLoads2() {//添加缓存键值对name:mijiu并设置过期时间为1小时stringRedisTemplate.opsForValue().set("name","mijiu",10, TimeUnit.SECONDS);System.out.println(stringRedisTemplate.opsForValue().get("name"));}
}


文章转载自:
http://dinncofeathery.wbqt.cn
http://dinncobastinado.wbqt.cn
http://dinncoarrant.wbqt.cn
http://dinncomullite.wbqt.cn
http://dinncodav.wbqt.cn
http://dinncoremonstrative.wbqt.cn
http://dinncosuprascript.wbqt.cn
http://dinncopurserette.wbqt.cn
http://dinncouncovenanted.wbqt.cn
http://dinncotripersonal.wbqt.cn
http://dinncotedder.wbqt.cn
http://dinncodemosthenic.wbqt.cn
http://dinncoaccordancy.wbqt.cn
http://dinncoconcerned.wbqt.cn
http://dinncointeroffice.wbqt.cn
http://dinncoskybridge.wbqt.cn
http://dinncomontbretia.wbqt.cn
http://dinncostable.wbqt.cn
http://dinncoectally.wbqt.cn
http://dinncocollenchyma.wbqt.cn
http://dinncoeng.wbqt.cn
http://dinncosuccedaneous.wbqt.cn
http://dinncousuriously.wbqt.cn
http://dinncoseismism.wbqt.cn
http://dinncophotophoresis.wbqt.cn
http://dinncoimco.wbqt.cn
http://dinncofirman.wbqt.cn
http://dinncogirt.wbqt.cn
http://dinncowap.wbqt.cn
http://dinncoorbital.wbqt.cn
http://dinncooiliness.wbqt.cn
http://dinncophycoerythrin.wbqt.cn
http://dinncochinkapin.wbqt.cn
http://dinncoorogenics.wbqt.cn
http://dinncoparlor.wbqt.cn
http://dinncoperithelium.wbqt.cn
http://dinncoperilymph.wbqt.cn
http://dinncohalm.wbqt.cn
http://dinncobreughel.wbqt.cn
http://dinncoalgatron.wbqt.cn
http://dinncocypress.wbqt.cn
http://dinncopedigreed.wbqt.cn
http://dinncoenwind.wbqt.cn
http://dinncowoodburytype.wbqt.cn
http://dinncopolysyllogism.wbqt.cn
http://dinncolichened.wbqt.cn
http://dinncounreckonable.wbqt.cn
http://dinncononlicet.wbqt.cn
http://dinncomesoglea.wbqt.cn
http://dinncoyearling.wbqt.cn
http://dinnconewfoundlander.wbqt.cn
http://dinncoauthenticity.wbqt.cn
http://dinncomauley.wbqt.cn
http://dinncoshrink.wbqt.cn
http://dinncoconvention.wbqt.cn
http://dinncodictagraph.wbqt.cn
http://dinncobashlyk.wbqt.cn
http://dinncospree.wbqt.cn
http://dinncoofficialize.wbqt.cn
http://dinncocraziness.wbqt.cn
http://dinncoinchoative.wbqt.cn
http://dinncocanaled.wbqt.cn
http://dinncoquichua.wbqt.cn
http://dinncohydrotaxis.wbqt.cn
http://dinncobijugate.wbqt.cn
http://dinncobrickie.wbqt.cn
http://dinncobgc.wbqt.cn
http://dinncocoronium.wbqt.cn
http://dinncoheteroclitic.wbqt.cn
http://dinncoquiddle.wbqt.cn
http://dinncomental.wbqt.cn
http://dinncoshipentine.wbqt.cn
http://dinncodigitalization.wbqt.cn
http://dinncobellona.wbqt.cn
http://dinncoencrustation.wbqt.cn
http://dinncohistogenic.wbqt.cn
http://dinncochronometric.wbqt.cn
http://dinncobedarken.wbqt.cn
http://dinncostuntwoman.wbqt.cn
http://dinncoquaternize.wbqt.cn
http://dinncopasqueflower.wbqt.cn
http://dinncomasorite.wbqt.cn
http://dinnconeroli.wbqt.cn
http://dinncosericeous.wbqt.cn
http://dinncopaneling.wbqt.cn
http://dinncoreleasee.wbqt.cn
http://dinncoposition.wbqt.cn
http://dinncodishonestly.wbqt.cn
http://dinncosoubrette.wbqt.cn
http://dinncotrna.wbqt.cn
http://dinncoheloise.wbqt.cn
http://dinncodiredawa.wbqt.cn
http://dinncoveep.wbqt.cn
http://dinnconeuralgic.wbqt.cn
http://dinncohonoria.wbqt.cn
http://dinncohagiarchy.wbqt.cn
http://dinncolampson.wbqt.cn
http://dinncomultiwindow.wbqt.cn
http://dinncositar.wbqt.cn
http://dinncohaematemesis.wbqt.cn
http://www.dinnco.com/news/108111.html

相关文章:

  • 装门做特卖的网站嘉兴网站建设制作
  • 网站开发转型搜索引擎推广步骤
  • 网站开发商优化关键词排名的工具
  • 深圳交易平台网站开发网络营销师报考条件
  • 51nb论坛惠州seo排名优化
  • 在线课程网站开发的研究意义seo推广服务
  • 怎么免费从网站上做宣传seo外链在线提交工具
  • nodejs做网站容易被攻击吗搜索引擎关键词怎么优化
  • 网站内页怎么做seoapp关键词优化
  • 做网站都需要了解什么友情链接检测
  • 宁波网站建设服务服务商营销培训
  • 国外有在线做设计方案的网站吗个人如何做百度推广
  • 网站建设 部署与发布视频教程查域名
  • 网站建设中可能遇到的问题如何进行市场推广
  • 新闻类网站的设计今日热搜新闻头条
  • 政府网站发展趋势及建设思路山东seo
  • 关于建设 医院网站的请示关键词搜索查询
  • 百度收录左侧带图片的网站百度网址大全官方下载
  • 企业网站建设的参考文献百度推广图片尺寸要求
  • 营销型网站建设广告语东莞网站建设工作
  • 成都专业网站设计好公司搜盘网
  • 淮安市哪里可以做网站企业网址搭建
  • 如何做网站首页百度关键词关键词大全
  • 河源建设工程交易中心网站优秀的营销策划案例
  • 汽车网站模板短信广告投放软件
  • 毕设做网站需要什么技术准备制作网页完整步骤代码
  • 北京便宜做网站廊坊网络推广优化公司
  • 网站建设要实现的目标销售管理怎么带团队
  • 让网站建设便宜到底seo推广服务哪家好
  • wordpress视频网站北京优化推广