- 博客(14)
- 收藏
- 关注
原创 如果要限制进入系统的请求在1w之内,限流的设计方案是什么?
令牌桶算法:在令牌桶中,系统会以恒定的速率往桶中放入令牌,每当一个请求到来时,就会从桶中取走一个令牌,如果桶中没有令牌,则该请求会被拒绝。漏桶算法:在漏桶算法中,系统会以恒定的速率从桶中流出请求,每当一个请求到来时,就会被放入桶中,如果桶已经满了,则该请求会被拒绝。这种算法可以有效地控制请求的数量,但是需要注意桶的大小和流出请求的速率的设置,否则可能会导致请求被拒绝过多或者系统过度消耗资源。计数器算法:在计数器算法中,系统会统计一定时间内的请求数量,如果请求数量超过了设定的阈值,则后续的请求会被拒绝。
2023-06-25 19:42:10
184
原创 jvm最多能够创建多少个java对象,如何扩展堆和栈的默认大小
JVM最多能够创建的Java对象数量取决于可用内存大小。在JVM启动时,可以通过指定JVM参数来扩展堆和栈的默认大小。这将指定JVM的栈大小为1MB。需要注意的是,堆和栈的大小应该根据应用程序的内存需求进行调整,过小会导致OutOfMemoryError异常,过大会浪费内存资源。这将指定JVM的最大堆大小为2GB,初始堆大小为1GB。
2023-06-21 11:36:26
273
原创 周测试归纳
单选1.JWT 的签名部分是用来做什么的?A确保消息的完成性B确保消息的机密性C确保消息的可用性D以上都不是答案:A2.JWT 的头部部分是用来做什么的?A声明类型和加密算法B存储用户信息C存储访问权限D储存数据加密方式答案:A3.JWT 可以被用作什么?A用户认证B数据加密C数据传输D以上都是答案:D4.以下哪个不是 JWT 的组成部分?A头部B载荷C签名D数据库答案:D5.关于SpringCache中的Cacheable注解,说法错误的是?
2023-06-19 20:23:47
162
原创 linux常用指令: chmod和grep的使用
其中,`pattern` 表示要查找的字符串,可以是正则表达式。`file` 表示要查找的文件,可以指定多个文件。- `-r`:递归查找子目录中的文件。- `u`:表示文件或目录的所有者;- `g`:表示文件或目录的所属组;- `-n`:显示匹配行的行号;- `-v`:显示不匹配的行;- `o`:表示其他用户;- `a`:表示所有用户。- `-i`:忽略大小写;- `+`:添加权限;- `-`:删除权限;
2023-06-15 19:56:12
95
1
原创 redis中的内存满了怎么办
其中,RDB 持久化会将 Redis 数据库的快照写入磁盘,而 AOF 持久化则会将 Redis 的操作日志写入磁盘。使用 Redis 的过期功能,设置 Redis 中的 key 的过期时间,当 key 过期时,Redis 会自动将其删除,以释放内存空间。使用 Redis 的 LRU 算法,当 Redis 内存空间不足时,自动删除最近最少使用的 key,以释放内存空间。需要注意的是,以上方法都有各自的优缺点,需要根据具体情况选择最适合的方法来解决 Redis 内存满的问题。
2023-06-15 19:53:20
1182
1
原创 Redis 的持久化策略
在实际应用中,可以根据具体情况选择使用 RDB 持久化、AOF 持久化或者两者结合使用的方式。例如,对于读写比较频繁的应用,可以选择使用 AOF 持久化,以保证数据的完整性;对于数据量比较大、读写不频繁的应用,可以考虑使用 RDB 持久化,以便在 Redis 重启时快速恢复数据。同时,也可以将 RDB 持久化和 AOF 持久化结合使用,以兼顾数据完整性和性能。AOF 持久化的优点是数据完整性高,可以最大程度地避免数据丢失,适合于对数据完整性要求较高的场景。
2023-06-15 19:52:48
141
1
原创 Redis中的数据过期策略
惰性删除是指 Redis 在获取某个键时,会检查该键是否已过期,如果过期则删除该键。这种方法的优点是可以节省 CPU 资源,缺点是可能会造成大量过期键堆积在内存中,造成内存浪费。定时删除是指 Redis 在设置键的过期时间时,同时创建一个定时器(timer)。当键的过期时间到达时,定时器会立即执行键的删除操作。Redis 默认采用的是惰性删除策略,但是当过期键的数量比较多时,Redis 会启动定时删除策略来清理过期键。Redis 中有两种过期策略:定时删除和惰性删除。
2023-06-15 19:49:34
364
1
原创 Redis是单线程是如何保证速度的
非阻塞I/O:Redis使用非阻塞I/O模型,可以在一个线程中处理多个客户端请求,从而避免了线程切换的开销,提高了处理请求的效率。在处理网络I/O时,Redis使用了epoll或kqueue等高效的I/O多路复用技术,可以同时处理大量的客户端请求,从而提高了并发性能。单线程模型:虽然Redis是单线程的,但它采用了事件驱动模型,可以在事件循环中高效地处理客户端请求,从而避免了线程切换的开销。基于内存:Redis将所有数据存储在内存中,这样可以避免了磁盘I/O的开销,从而提高了数据读写的速度。
2023-06-12 19:26:10
118
原创 Mysql和redis的查询速度比较
当然,在实际应用中,MySQL和Redis也可以结合使用,例如将热数据存储在Redis中,将冷数据存储在MySQL中,以实现更好的性能和可扩展性。另外,Redis还有一些优化策略,例如使用哈希表存储数据、使用压缩算法减少存储空间、使用异步IO等,可以进一步提高查询速度。通常情况下,Redis的查询速度比MySQL快得多,这是因为Redis将数据存储在内存中,而MySQL则将数据存储在磁盘上。需要注意的是,虽然Redis的查询速度很快,但它也有一些限制,例如内存容量有限、数据持久化不够可靠等。
2023-06-12 17:55:23
1190
原创 linux常用指令: chmod和grep的使用。
例如,`chmod 644 file.txt` 将文件 `file.txt` 的权限设置为 `-rw-r--r--`。常用的符号包括: - `u`:所有者(User) - `g`:所属组(Group) - `o`:其他人(Others) - `+`:添加权限 - `-`:移除权限 - `=`:设置权限 - `r`:读权限 - `w`:写权限 - `x`:执行权限 - 例如,`chmod u+x script.sh` 将脚本文件 `script.sh` 的所有者添加执行权限。- `-w`:精确匹配整个单词。
2023-06-08 20:41:17
123
原创 Spring框架的设计模式
模板模式:Spring框架中的JdbcTemplate和HibernateTemplate使用模板模式,以提供标准的数据库操作API,并隐藏低层次的数据库访问详细信息。装饰器模式:Spring框架中的切面编程(AOP)基于装饰器模式设计,它允许应用程序将横切关注点和业务功能进行分离,从而更容易地实现代码复用和维护。这种设计模式可避免过多的内存占用和对象创建/维护开销。适配器模式:Spring框架中的适配器模式适用于将不同的技术、协议或API适配成统一的接口,从而更容易地实现代码复用和维护。
2023-06-07 10:39:17
152
1
原创 项目中的命名 POJO , PO , VO , DTO
DTO:数据传输对象,指的是用于跨进程或跨网络传输数据的Java对象。DTO通常包含业务数据或Web表单数据的所有属性,并负责将这些数据转换为其他类的数据模型。POJO:简单Java对象,指的是没有实现任何特殊接口或继承自特定类的普通Java对象。POJO通常用于表示简单的数据模型,不包含任何业务逻辑或持久化逻辑。VO:值对象,指的是表示值的Java对象,通常包含多个属性但没有任何业务逻辑。VO通常用于在应用程序中传递数据,以保证数据的一致性。PO:持久对象,指的是从数据库表中获取数据的Java对象。
2023-06-06 17:24:52
490
1
原创 构建Spring boot 项目
type: com.zaxxer.hikari.HikariDataSource # 数据源类型:HikariCP。driver-class-name: com.mysql.cj.jdbc.Driver # mysql驱动。然后对其配置application.yml文件在resources中。在application中配置一些与数据库连接等相关配置。然后在pom.xml中对项目添加依赖。然后对项目进行测试是否可以运行。首先创建一个maven项目。然后创建一些项目的组件。
2023-06-06 12:18:12
76
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅