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,这个有一点不熟悉了,其他都还好。

相关推荐
小白的码BUG之路15 小时前
linux -- ssh两台机器相连
运维·服务器·ssh
十年Java程序媛15 小时前
Java枚举Enum完整教程|替代静态常量,开发与面试要点
java·开发语言·spring boot·后端·面试
所以遗憾是什么呢?16 小时前
【题解】Educational Codeforces Round 195 (Rated for Div. 2) ABCDE
c++·动态规划·acm·icpc·ccpc·xcpc·codeforecs
缓慢更新17 小时前
表单引擎的存储建模:宽表与文档库的取舍
运维·服务器·网络·数据库·低代码·oracle·适配器模式
考研保研资料分享17 小时前
2022年马理论保研复盘:南师大原著题、首师大追问与上财选择
面试
蒸蒸yyyyzwd17 小时前
C++ 八股学习笔记。
八股
续写烂尾17 小时前
贴片 SD NAND、eMMC、TF 卡规格怎么定?硬件工程师选型清单
运维·服务器·网络
科技小E18 小时前
监控设备品牌杂乱无法互通?EasyGBS打通孤岛,统一汇聚视频
服务器·网络·音视频
考研保研资料分享18 小时前
2022编辑出版跨保西北大学中国史:五校面试与九月补材料
面试·职场和发展
Lhan.zzZ18 小时前
Qt WebEngineView 在 Linux 上无法加载网页:从“看不见 HTML“到“禁用沙箱“
linux·c++·qt