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

网页设计与制作教程教科书关键词整站优化公司

网页设计与制作教程教科书,关键词整站优化公司,国内做的比较好的协会网站,如何保持网站中的图片一、Lettuce核心优势与Spring Boot集成背景 Lettuce特性 基于Netty的非阻塞I/O模型,支持同步/异步/响应式编程线程安全:共享单连接实现多线程并发操作,性能衰减低原生支持Redis集群、哨兵、主从架构,自动重连机制保障高可用Spring…

一、Lettuce核心优势与Spring Boot集成背景

  1. Lettuce特性

    • 基于Netty的非阻塞I/O模型,支持同步/异步/响应式编程
    • 线程安全:共享单连接实现多线程并发操作,性能衰减低
    • 原生支持Redis集群、哨兵、主从架构,自动重连机制保障高可用
    • Spring Boot 2.x默认Redis客户端,替代Jedis
  2. 适用场景对比

    场景Lettuce适用性Jedis适用性
    高并发低延迟✅ 异步非阻塞,性能更优❌ 同步阻塞,连接池压力大
    分布式锁/数据结构需结合Redisson原生不支持
    简单CRUD操作✅ 内置序列化支持✅ 轻量易用

二、Spring Boot集成Lettuce全流程

1. 依赖配置
<!-- Spring Boot默认集成Lettuce -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- 连接池支持(可选) -->
<dependency><groupId>org.apache.commons</groupId><artifactId>commons-pool2</artifactId>
</dependency>
2. 基础配置(application.yml)
spring:redis:host: 127.0.0.1port: 6379password: yourpasswordlettuce:pool:max-active: 20    # 最大连接数(高并发场景建议50+)max-idle: 10      # 最大空闲连接min-idle: 5       # 最小空闲连接(防突发流量)max-wait: 100ms   # 获取连接最大等待时间
3. 序列化定制(核心配置类)
@Configuration
public class RedisConfig {@Beanpublic RedisTemplate<String, Object> redisTemplate(LettuceConnectionFactory factory) {RedisTemplate<String, Object> template = new RedisTemplate<>();template.setConnectionFactory(factory);// Key序列化template.setKeySerializer(new StringRedisSerializer());  // Value序列化为JSONtemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());  return template;}
}

序列化方案对比

  • StringRedisSerializer:纯字符串操作
  • Jackson2JsonRedisSerializer:对象序列化(需无参构造)
  • JdkSerializationRedisSerializer:二进制存储(兼容性差)

三、高级功能实现

1. 哨兵/集群模式
# 哨兵模式配置
spring:redis:sentinel:master: mymaster     # 主节点名称nodes: 192.168.1.1:26379,192.168.1.2:26379lettuce:pool: max-active: 30    # 集群需增大连接池
2. 读写分离(主从架构)

通过自定义LettuceClientConfigurationBuilder实现:

@Bean
public LettuceConnectionFactory redisConnectionFactory() {RedisStandaloneConfiguration config = new RedisStandaloneConfiguration("master-host", 6379);LettuceClientConfiguration clientConfig = LettuceClientConfiguration.builder().readFrom(ReadFrom.REPLICA_PREFERRED)  // 优先从副本读取.build();return new LettuceConnectionFactory(config, clientConfig);
}
3. 响应式编程(WebFlux集成)
@Bean
public ReactiveRedisTemplate<String, String> reactiveRedisTemplate(ReactiveRedisConnectionFactory factory) {return new ReactiveRedisTemplate<>(factory, RedisSerializationContext.string());
}

响应式操作示例:

reactiveTemplate.opsForValue().set("key", "value").subscribe();  // 非阻塞写入

四、性能优化策略

  1. 连接池调优

    • max-active:根据QPS计算(公式:QPS * avg_time)
    • min-idle:保持预热连接,应对突发流量
    • 禁用连接池:短连接场景可设置spring.redis.lettuce.pool.enabled=false
  2. 序列化优化

    • 避免JDK序列化(体积大且跨语言差),优先使用JSON或Protobuf
    • 大Value场景启用压缩:
      template.setValueSerializer(new CompressionRedisSerializer(new Jackson2JsonRedisSerializer<>(Object.class)));
      
  3. 批处理与Pipeline

    List<Object> results = redisTemplate.executePipelined((RedisCallback<Object>) connection -> {for (int i =0; i <1000; i++) {connection.stringCommands().set(("key"+i).getBytes(), value.getBytes());}return null;
    });
    

五、常见问题排查

  1. 连接泄漏

    • 现象:RedisConnectionFailureException: Cannot get Jedis connection
    • 解决:检查finally块是否关闭连接,或使用execute(SessionCallback)自动释放
  2. 序列化异常

    • 现象:SerializationException: Could not read JSON
    • 解决:确保实体类有无参构造器,或切换为GenericJackson2JsonRedisSerializer
  3. 高延迟

    • 启用慢查询日志:
      redis-cli config set slowlog-log-slower-than 5000  # 记录>5ms操作
      redis-cli slowlog get                              # 查看日志
      

六、扩展场景实践

  1. 分布式锁(Redisson整合)

    @Bean
    public RedissonClient redissonClient() {Config config = new Config();config.useSingleServer().setAddress("redis://127.0.0.1:6379");return Redisson.create(config);
    }
    // 使用示例
    RLock lock = redissonClient.getLock("myLock");
    lock.lock();
    try { /* 业务逻辑 */ } finally { lock.unlock(); }
    
  2. 多数据源配置
    创建多个RedisTemplate实例并指定不同连接工厂:

    @Bean(name = "secondaryTemplate")
    public RedisTemplate<String, Object> secondaryTemplate(@Qualifier("secondaryFactory") RedisConnectionFactory factory) {RedisTemplate<String, Object> template = new RedisTemplate<>();template.setConnectionFactory(factory);return template;
    }
    

最佳实践总结

  1. 生产环境必配连接池(防连接风暴)
  2. ETL类作业启用Pipeline(提升吞吐量3-5倍)
  3. 监控指标:关注redis.commands的P99延迟与连接池活跃数
  4. 版本升级:Spring Boot 3.x需配合Lettuce 6.x+,支持RESP3协议

参考配置

代码示例与完整配置可参考:示例项目

Lettuce使用详解


在这里插入图片描述


文章转载自:

http://Hrz1c1oF.dmzmy.cn
http://ibaV2Aeg.dmzmy.cn
http://OVCUalyU.dmzmy.cn
http://uyrannxH.dmzmy.cn
http://bwNsL4T6.dmzmy.cn
http://8HuQy9Hk.dmzmy.cn
http://EXKaktQz.dmzmy.cn
http://98ELZt1c.dmzmy.cn
http://EBsis37O.dmzmy.cn
http://uvHHr0KU.dmzmy.cn
http://37cBSmmG.dmzmy.cn
http://FmfCFtIO.dmzmy.cn
http://3dJNIgPI.dmzmy.cn
http://Zq26d9MK.dmzmy.cn
http://JdleoD6j.dmzmy.cn
http://AUkcHsX3.dmzmy.cn
http://DFsDE2DW.dmzmy.cn
http://fA3QBf4b.dmzmy.cn
http://0WAhhoGH.dmzmy.cn
http://c0YUaRei.dmzmy.cn
http://EhPtI9B0.dmzmy.cn
http://4EMyn3li.dmzmy.cn
http://hAtlCE9c.dmzmy.cn
http://9JblM3EK.dmzmy.cn
http://TIPvVqv0.dmzmy.cn
http://pRPhS1po.dmzmy.cn
http://YPUIbAtT.dmzmy.cn
http://ZqBUfl2c.dmzmy.cn
http://44qOlIto.dmzmy.cn
http://1q5gQfix.dmzmy.cn
http://www.dtcms.com/wzjs/709607.html

相关文章:

  • 太原制作网站的公司gif图标网站
  • 药房网站模板100款夜间必备软件app
  • 网站设计面试问题电子设计全国网站建设
  • 松江品牌网站建设深圳平面广告设计公司
  • 做一个一般的网站需要多少钱建立网站的方法
  • 阜城网站建设价格网站界面友好
  • 建设银行网站怎么修改手机号码吗网站的基本组成部分有哪些内容
  • 网站改版原因物流网站建设策划书的总结
  • 网站建设的项目描述一起作做业网站
  • 企业网站建设的劣势做一个公司官网需要多少钱
  • 厂家网站怎么做网站建设上传服务器步骤
  • 济南做门户网站开发公司怎样做婚恋网站
  • 新站秒收录接口电影网站规划
  • 网站建设开发的流程沂源网站
  • 餐饮网站建设方案书wordpress广告代码在哪里
  • 加快网站平台建设网站增加聊天
  • wordpress 移动 建站游戏开发是什么
  • 好的网页设计网站推荐绣花图案设计网站
  • 成都海鸥手表网站外贸网址建站
  • qq音乐怎么做mp3下载网站景观设计公司利润
  • 网站备案变更主体广州品牌网站设计公司
  • 成都网站注册青田建设局网站
  • 设计网站视频教程建设个人网站步骤
  • 江西省城乡建设厅网站安心保险官方网站
  • 建设网站的岗位职责直播网站创做
  • 上海建设银行网站查询余额如何做商业网站分析
  • 做娱乐网站彩票代理龙岩市兼职网
  • 网站设置成黑白杭州正晖建设工程有限公司网站
  • 惠州水口网站建设oa办公系统怎么注册
  • 惠州市建设厅网站沙田网站建设