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

免费的wordpress模板下载seo推广优化

免费的wordpress模板下载,seo推广优化,淘宝是行业门户网站的盈利模式是什么,seo推广联系方式93 springboot整合reids之总体概述 总体概述 jedis-lettuce-RedisTemplate三者的联系 名称类型作用描述和其它的关系JedisRedis 客户端早期主流的 Java Redis 客户端,基于阻塞 I/O,同步操作可作为 RedisTemplate 的底层连接实现LettuceRedis 客户端基…

93 springboot整合reids之总体概述

总体概述

jedis-lettuce-RedisTemplate三者的联系

名称类型作用描述和其它的关系
JedisRedis 客户端早期主流的 Java Redis 客户端,基于阻塞 I/O,同步操作可作为 RedisTemplate 的底层连接实现
LettuceRedis 客户端基于 Netty、支持异步/响应式编程,更适合高并发场景也可作为 RedisTemplate 的底层连接实现
RedisTemplateSpring 封装类Spring Data Redis 提供的操作 Redis 的高级模板,简化开发底层依赖 Jedis 或 Lettuce

本地java连接Redis常见问题,小白注意

redis.conf配置文件中bind配置请注释掉

保护模式设置为no

linux系统的防火墙设置

redis服务器的ip地址和密码是否正确

忘记写访问redis服务端口号和auth密码

集成Jedis

略 跟着视频操作即可

集成lettuce

每次连接redis都要new一个对象非常消耗资源。

Jedis和Lettuce的区别

jedis和Lettuce都是Redis的客户端,它们都可以连接Redis服务器,但是在SpringBoot2.0之后默认都是使用的Lettuce这个客户端连控Redis服务器。因为当使用Jedis客户端连接Redis服务器时候,每个线程都要拿自己创建的Jedis实例去连接Redis客户端,当有很多个线程的时候,不仅开销大需要反复的创建关闭一个Jedis连接,而且也是线程不安全的,一个线程通过Jedis实例更改Redis服务器中的数据之后会影响另一个线程;

但是如果使用Lettuce这个客户端连接Redis服务器的时候,就不会出现上面的情况,Lettuce底层使用的是Netty.当有多个线程都需要连接Redis服务器的时候,可以保证只创建一个Lettuce连接,使所有的线程共享这一个Lettuce连接,这样可以减少创建关闭一个Lettuce连接时候的开销;而且这种方式也是线程安全的,不会出现一个线程通过Lettuce更改Redis服务器中的数据之后而影响另一个线程的情况;

集成RedisTemplate【推荐使用】

@Service
@Slf4j
public class OrderService {//设置Key的前缀public static final String ORDER_KEY = "ord:";// 有两个一个是系统默认的,一个是在Config中手动配置的,在这里由于@Resouce所以使用手动配置的@Resourceprivate RedisTemplate redisTemplate;public void addOrder(){ // 写操作 添加订单// 生成一个 1 到 1000(包含1和1000)之间的随机整数。int keyId = ThreadLocalRandom.current().nextInt(1000)+1;//生成一个随机的唯一标识符(UUID),并将它转换成字符串赋值给 serialNo。String serialNo = UUID.randomUUID().toString();String key = ORDER_KEY+keyId;String value = "京东订单"+serialNo;// redisTemplate.opsForValue()  获取操作 Redis 字符串(String)类型数据的操作接口redisTemplate.opsForValue().set(key,value);log.info("***key:{}",key);log.info("***value:{}",value);}public String getOrderById(Integer keyId){return redisTemplate.opsForValue().get(ORDER_KEY+keyId).toString();}
}

PS:如果是log日志报错可能是lombok版本太低 ,可以改成

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.26</version> <!-- 版本号可以根据需要调整 -->
    <scope>provided</scope>
</dependency>

还有就是Swagger UI无法正常显示可能是因为Springfox 2.9.2Spring Boot版本不兼容不兼容导致的依赖注入失败

删除旧版本的 Springfox 依赖 用 springdoc-openapi

<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
    <version>2.1.0</version>
</dependency>
 

@RestController
@Slf4j
@Tag(name = "订单接口", description = "订单相关操作")
public class OrderController {@Resourceprivate OrderService orderService;@Operation(summary = "获取订单", description = "根据订单ID查询订单详情")@RequestMapping(value="order/add",method = RequestMethod.POST)public void addOrder(){orderService.addOrder();}@Operation(summary = "获取订单", description = "根据订单ID查询订单详情")@RequestMapping(value="order/{keyId}",method = RequestMethod.GET)public void getOrderById(@PathVariable Integer keyId){orderService.getOrderById(keyId);}
}

访问 Swagger UI则可正常显示

reids中文显示乱码

redis-cli -a 密码 --raw

 为什么使用默认的RedisTemplate会导致redis数据库乱码?

Java 会使用 JDK 默认的序列化机制,将对象转换为字节流。

RedisConfig中手动新建的RedisTemplate类的注释 

@Configuration
public class RedisConfig {/*** redis序列化的工具配置类,下面这个请一定开启配置* 127.0.0.1:6379> keys ** 1) "ord:102"  序列化过* 2) "\xac\xed\x00\x05t\x00\aord:102"   野生,没有序列化过* this.redisTemplate.opsForValue(); //提供了操作string类型的所有方法* this.redisTemplate.opsForList(); // 提供了操作list类型的所有方法* this.redisTemplate.opsForSet(); //提供了操作set的所有方法* this.redisTemplate.opsForHash(); //提供了操作hash表的所有方法* this.redisTemplate.opsForZSet(); //提供了操作zset的所有方法* @param lettuceConnectionFactory* @return** LettuceConnectionFactory 创建和管理 Redis 连接,作为 RedisTemplate 的底层连接提供者。*/@Beanpublic RedisTemplate<String, Object> redisTemplate(LettuceConnectionFactory lettuceConnectionFactory){// 在这个方法里手动创建一个新的 RedisTemplate 实例RedisTemplate<String,Object> redisTemplate = new RedisTemplate<>();// 将 Redis 的“连接方式”交给 RedisTemplate,让它能正确地连上 Redis 服务器。redisTemplate.setConnectionFactory(lettuceConnectionFactory);//设置key序列化方式string Redis 是一个二进制存储系统,将其转化为字符串redisTemplate.setKeySerializer(new StringRedisSerializer());//设置value的序列化方式json,使用GenericJackson2JsonRedisSerializer替换默认序列化// 将 Redis 中的 value 序列化为 JSON 格式进行存储,并在读取时反序列化为 Java 对象。redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());redisTemplate.setHashKeySerializer(new StringRedisSerializer());redisTemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());// 确保 RedisTemplate 的所有配置都已经设置完成,并进行必要的初始化。redisTemplate.afterPropertiesSet();return redisTemplate;}}

为了保证OrderService中调用的是我们自定义的redisTemplate,在OrderService这么调用

@Resource(name="redisTemplate")
private RedisTemplate<String, Object> redisTemplate;

http://www.dtcms.com/wzjs/126290.html

相关文章:

  • 怎么做网站的搜索功能成都seo学徒
  • 中国空间站叫什么名app推广方案怎么写
  • 上海网站seo公司手机百度官网
  • 高端网站制作建设营销策划方案ppt范文
  • 宜家在线设计网站谷歌广告联盟一个月能赚多少
  • 百度网盟推广怎么选择投放网站中文域名查询官网
  • 南阳网站建站培训新手如何学seo
  • 小米4路由器可以做网站嘛今日头条最新新闻消息
  • 温州网站建设制作设计公司海外销售平台有哪些
  • 美客多电商平台入驻链接快速seo软件
  • 中企动力 网站建设电商网站订烟
  • bootstrap商城模板万能优化大师下载
  • 网站设计要注意什么steam交易链接怎么用
  • 多张图片排版设计欣赏信息流优化师是做什么的
  • 本地唐山网站建设百度贴吧怎么发广告
  • 郑州网站建设zzwzjs郑州百度推广代理公司
  • wordpress 网站静态页面seo综合查询怎么用
  • 建设什么企业网站营销策划公司主要做些什么
  • 爱站小工具sem竞价推广
  • 大连免费网站建设软文代写平台有哪些
  • 做网站功能免费打广告网站
  • 做网站 提要求seo外包
  • 兰州兼职做网站比较经典的营销案例
  • 做网站的应该怎么发广告西安seo优化
  • 第一次做网站做后感2023年8月疫情又开始了吗
  • 怎样自己免费建设一个网站百度百度百度一下
  • 织梦网站如何做移动端百度做推广一般要多少钱
  • 做一个租房卖房的网站怎么做it培训机构怎么样
  • 小程序开发制作多少钱百度seo快速提升排名
  • 天津网站建设费用免费推广平台排行榜