cpp 选手秋招学习笔记 day27

一、算法

1.力扣 92 解码

这个是把数一位数的要是 1 到 9 之间的,不能是 0,如果是两位数就是 10 到 26。

2.今天做华为机试,久违地遇到了通过 while(cin>>s)界定输入是否结束的,常见的方式都是先输入一个整数 n 然后去循环 n 次去输入 s。

二、Redis 专栏学习

关于 Redis 缓冲区

Redis 的缓冲存在于两个地方,分别是实例和客户端之间,以及主从节点之间;客户端和 Redis 之间有输入和输出缓冲区,输入缓冲区存储没有执行完的命令,输出缓冲区存储执行后的结果。

主从复制的过程中从库可能跟不上数据传输的速度,所以也要有缓冲区。

缓冲区溢出或者持续缓冲区数据增长超过某个值需要直接断开客户端的连接或者主从库之间的连接。

也可以采用的另一种方式是增加缓冲区的大小。

三、复盘

今日做的算法题

一个没有做出来,因为时间复杂度的是计算 i 取余 modk 乘以 ai

四、复习

1.缓存穿透、击穿和雪崩分别是因为什么以及解决的方法

缓存穿透是指查找数据库没有的数据,因此缓存也没有。因而请求直接去访问数据库。

解决方法是使用布隆过滤器,如果数据多了之后可以使用多个布隆过滤器。

缓存击穿是指热点 key 失效导致大量热点请求直接打到数据库。

解决方法是热点 key 永不失效,或者是使用互斥锁只有第一个请求访问数据库。

缓存雪崩是大量 key 同时过期,失效导致大量请求直接打到数据库。

解决方法在针对不同的 key 设置不同的过期时间(可以增加随机的过期时间),以及使用多级缓冲避免直接失效。

2.Redis 高性能的来源

一点是来自于 Redis 是内存数据库,内存本身的高速,Redis 也是键值数据库,基于哈希存储 key 和 value 关系,因此支持 O(1)查找,另外一个就是 Redis 采用 IO 多路复用机制,虽然是单线程但是仍然可以同时监听多个连接的请求。

3.Redis 高可靠的来源

一个是来自于 AOF 和 RDB 作为持久化,Redis 在崩溃之后可以通过这两者恢复,在生产环境中 AOF 和 RDB 是结合使用的,AOF 存储的是 RDB 之后执行的命令,另一个是主从复制确保服务的可用性,以及服务器宕机之后主从切换。

总结:缓存穿透是不存在的 key,这个有一点不熟悉了,其他都还好。

相关推荐
不会算法的笨小孩2 小时前
异常的使用以及会出现的问题
开发语言·c++·c++11·异常
蒸蒸yyyyzwd3 小时前
秋招学习笔记 day109
笔记·八股
疯华整猫3 小时前
被杀掉之后:我把 Android 的「唤起 + 常驻」重做了一遍
前端·面试·架构
数字新视界3 小时前
动环监控信创适配在智能机房管理中的应用价值与未来展望
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
爱和冰阔落3 小时前
【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork
linux·运维·服务器·网络
nice_lcj5204 小时前
Java 并发容器入门:ConcurrentHashMap、CopyOnWriteArrayList、阻塞队列
java·面试·并发编程·阻塞队列·concurrenthashmap·copyonwritearraylist
Hhy_11074 小时前
《C++深度解构06》手撕 string —— 从底层内存管理到深浅拷贝彻底吃透
c语言·开发语言·c++·学习·visual studio
lisanmengmeng4 小时前
alertmanger 标签 rules 打上分组标签
linux·运维·服务器
青少儿编程课堂4 小时前
蓝桥杯青少组图形化省考报名倒计时·全国青少年信息素养大赛·电子学会图形化考级:校园黑白棋人机对战解析
c++·python·算法·bfs·信息学竞赛
YSL0701244 小时前
C++基础
开发语言·c++