- 博客(13)
- 收藏
- 关注
原创 Route Predicate Factories
可以在Spring Cloud Gateway的配置文件中使用这些路由断言工厂来定义路由的匹配条件。通常,可以将多个断言工厂组合使用,并使用逻辑运算符(如AND、OR)来创建更复杂的匹配规则。路由断言工厂(Route Predicate Factories)是Spring Cloud Gateway中用于定义路由匹配条件的组件。它们允许您根据请求的不同属性进行路由匹配。
2023-07-15 18:05:35
187
1
原创 限制进入系统的请求在1w之内,限流的设计方案及RabbiMq模式总结
具体来说,可以使用Redis的INCR命令来实现计数器,每秒钟使用Redis的ZADD命令将当前时间戳作为分值,将当前时间戳加上1秒作为成员值,将令牌数量作为分值,将当前时间戳作为成员值,然后使用Redis的ZREVRANGEBYSCORE命令获取当前时间戳前1秒内的成员值,计算出令牌数量,判断是否超过1w个令牌。在这种模式下,一个生产者发送一条消息到一个交换机,交换机根据消息的主题(Topic)进行匹配,将消息路由到一个或多个绑定到它上面的队列中。创建一个令牌桶,初始时桶中有1w个令牌。
2023-06-25 23:28:18
141
原创 JVM最多能够创建的java对象个数及如何扩张堆、栈的默认大小
因此,创建的Java对象数量应根据具体应用的需求和可用资源进行合理的控制和优化。如果可用的堆内存有限,将限制可以创建的对象数量。增加栈的大小可能会导致可以同时运行的线程数减少,因为每个线程都需要占用更多的内存。请注意,对于生产环境的调优和配置,建议进行详细的性能测试和监测,以确保选择合适的堆和栈大小,并避免出现内存溢出或性能问题。JVM设置:JVM本身也有一些配置参数,如-Xmx(最大堆内存)和-Xms(初始堆内存),可以影响可用的堆内存大小。较大的对象会占用更多的堆内存,从而限制可创建的对象数量。
2023-06-20 23:14:27
385
1
原创 Redis及JWT问答
CachePut 注解用于在方法执行后将方法的返回值存储到缓存中,与 @Cacheable 不同的是,@CachePut 注解每次都会执行方法,并将方法的返回值存储到缓存中,不会先查看缓存中是否存在数据。该注解也可以指定缓存的名称、缓存的 key、缓存的条件等。SpringCache 中的 @Cacheable 注解是用于声明方法的返回值是可缓存的,当方法被调用时,SpringCache 会先检查缓存中是否已经存在该方法的返回值,如果存在,则直接返回缓存中的值,否则执行方法并将返回值缓存起来。
2023-06-18 22:41:54
307
1
原创 redis的数据过期策略
主动过期策略:Redis 会在设置 key 的时候,同时设置一个过期时间,当 key 的过期时间到达时,Redis 会自动将该 key 删除。需要注意的是,Redis 的过期策略是近似过期策略,即 Redis 不保证 key 在过期时间到达后立即被删除。这是因为 Redis 会以一定的频率检查过期的 key,而不是每个 key 的过期时间到达时立即删除,因此可能会有一定的时间窗口,使得某些 key 在过期时间到达后仍然存在于 Redis 中。
2023-06-15 19:52:06
416
1
原创 Redis内存用完了会发生什么?
当Redis采用内存回收策略时,会根据策略的具体实现方式来选择需要回收的键,并将这些键从内存中删除,以释放内存空间。但是,需要注意的是,当Redis的内存用完时,会导致写操作无法执行,这可能会对应用程序造成影响,因此需要及时处理Redis内存用尽的情况。3. `volatile-lru`:使用LRU算法回收所有设置了过期时间的键中最近最少使用的键的内存。6. `volatile-ttl`:回收所有设置了过期时间的键中即将过期的键的内存。4. `allkeys-random`:随机回收所有键的内存。
2023-06-14 23:07:33
106
原创 浅谈redis的持久化策略
AOF持久化是通过将Redis的写操作以日志追加的方式记录到一个文件(AOF文件)中,来保证数据的持久化。AOF持久化可以通过配置Redis服务器,在指定的时间间隔内自动执行AOF文件重写(AOF Rewrite)操作,将AOF文件的体积缩小,提高性能。可以通过配置Redis服务器,在指定的时间间隔内自动执行RDB持久化操作,也可以手动执行SAVE或BGSAVE命令来触发RDB持久化。Redis还提供了混合持久化的选项,可以同时使用RDB和AOF持久化策略。
2023-06-13 23:25:29
124
1
原创 redis 、mysql数据库每秒的访问量及redis单线程如何保证其速度
由于其数据存储在内存中,Redis可以提供非常高的读写速度。根据官方提供的数据,Redis可以支持每秒数十万次的读写操作,具体性能取决于硬件配置、网络条件和查询类型。在大多数情况下,Redis可以提供更高的QPS(每秒查询次数),这得益于它的内存存储机制和单线程设计。1. 内存操作:Redis将所有数据存储在内存中,内存访问速度远高于磁盘访问速度,这使得Redis能够提供非常快的读写性能。综上所述,Redis和MySQL的每秒访问量取决于多种因素,但在一般情况下,Redis的QPS要高于MySQL。
2023-06-12 22:29:03
461
1
原创 springbboot的默认缓存方案:@Cacheable@CachePut@CacheEvict
当方法被调用时,首先会检查缓存中是否存在该方法调用的结果,如果存在,则直接返回缓存中的结果,而不执行方法的实际逻辑。通过使用这些注解,你可以方便地实现方法级别的缓存功能,提高应用程序的性能和响应速度。在 Spring Boot 中,你可以使用。需要注意的是,这些注解默认使用方法参数和返回值作为缓存的键和值,如果需要自定义缓存的键和值,可以使用。:该注解用于标记一个方法的结果应该被缓存,无论缓存中是否已存在该方法调用的结果。注解的方法会执行实际逻辑,并将结果存储到缓存中,即使缓存中已经存在相同的键值对。
2023-06-10 09:42:04
226
原创 linux常用指令:chmod和grep的使用/CDN是什么?在项目开发中CDN有什么用?
CDN 的主要目标是将内容(如静态文件、图像、视频、脚本等)分发到全球各地的边缘节点,使用户能够从最接近他们位置的服务器获取内容,从而提供更快速、可靠的访问体验。应对高流量峰值:在项目发布新版本、热门活动、突发新闻事件等高流量峰值期间,CDN 可以通过缓存和分发内容来应对突发的请求量,减轻源服务器的压力,确保系统的正常运行。加速内容传输:CDN 的分布式架构允许内容在离用户更近的服务器上缓存和传输,减少了网络延迟和数据传输时间,从而提高内容的传输速度和用户体验。在项目开发中CDN有什么用?
2023-06-08 23:32:14
99
原创 Spring框架所包含的设计模式
委托模式(Delegate Pattern):委派模式是一种对象行为模式,它将对象的某些行为委派给一个专门负责处理这类请求的对象。外观模式(Facade Pattern):提供了一个统一的接口,用于访问子系统中的一群接口,简化了客户端与子系统之间的交互。适配器模式(Adapter Pattern):将一个类的接口转换成客户希望的另一个接口,使得原本不兼容的类可以一起工作。建造者模式(Builder Pattern):将一个复杂对象的构建与其表示分离,使同样的构建过程可以创建不同的表示。
2023-06-08 00:09:15
48
原创 POJO/PO/DTO/VO的区别及MyBatis-plus的基本使用
PO对象主要用于与数据库进行交互,将数据从数据库读取到PO对象中,或将PO对象中的数据写入到数据库中。VO(Value Object):VO是值对象的缩写,表示一个不可变的对象,它的值在创建后不可更改。VO的设计目标是提供一个轻量级的对象,用于存储和传输值,具有较低的内存消耗和更好的性能。POJO(Plain Old Java Object):POJO是指一个普通的java对象,通常是一个简单的java类,没有任何的限制或附加条件,不依赖于特定的框架或库,用于存储数据及提供简单的方法。
2023-06-06 23:03:00
1321
原创 springboot项目的从0到1
添加@SpringBootApplication注释来启用SpringBoot的自动配置,并使用SpringApplication.run()方法启动。步骤一、创建一个空maven项目。步骤二、导入相关起步及相关依赖。2.在类中实现所需业务逻辑。步骤四、编写业务逻辑。1.创建需要的包和类。
2023-06-05 22:47:51
107
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人