数据库
文章平均质量分 90
豆奶快攻
这个作者很懒,什么都没留下…
展开
-
Redis知识总结
如果因为网络故障,主服务器传播给从服务器的写命令在半路丢失,那么当从服务器向主服务器发 送REPLCONF ACK命令时,主服务器将发觉从服务器当前的复制偏移量少于自己的复制偏移量, 然后主服务器就会根据从服务器提交的复制偏移量,在复制积压缓冲区里面找到从服务器缺少的数据,并将这些数据重新发送给从服务器。因为跳表底层的单链表是有序的,为了维护这种有序性,在插入前需要遍历链表,找到该插入的位置,单链表遍历查找的时间复杂度是O(n),同理可得,跳表的遍历也是需要遍历索引数,所以是O(logn)。转载 2024-02-01 11:41:38 · 18 阅读 · 0 评论 -
MongoDB系统性能调优(持续更新)
默认情况下,cache_used超过80%将触发eviction,如果物理内存充足,建议设置足够大的cache_size,以加载全部数据,避免不必要的eviction。此时观察CPU负载,如果负载不高(相对于核数,CPU未充分利用),尝试调高此参数,能够一定程度上缓解问题,即使出现qw高,往往也是短暂的,可能下一秒恢复正常。cache_used是很关键的指标,超过80%将触发eviction,类似LRU算法,淘汰冷数据,避免cache用量持续增长。对于eviction线程,MongoDB默认配置是。原创 2024-01-15 17:36:02 · 637 阅读 · 0 评论 -
Redis 内存淘汰策略有哪些?过期数据如何删除?
Redis 在面试中出现的概率非常大,毕竟后端项目如果用到分布式缓存的话,一般用的都是 Redis。目前,还没有出现一个能够取代 Redis 的分布式缓存解决方案。这篇文章中,我会分享几道 Redis 内存管理相关的问题,都很常见。不论是面试还是项目中用到 Redis,都能有帮助。原创 2024-01-10 15:23:12 · 988 阅读 · 2 评论 -
数据库的分库分表
数据切分关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到 1000W 或 100G 以后,由于查询维度较多,即使添加从库、优化索引,做很多操作时性能仍下降严重。此时就要考虑对其进行切分了,切分的目的就在于减少数据库的负担,缩短查询时间。数据库分布式核心内容无非就是数据切分(Sharding),以及切分后对数据的定...原创 2020-02-26 01:36:50 · 512 阅读 · 0 评论 -
SQL 注入攻击
目录 为什么要聊 SQL 注入攻击? 什么是 SQL 注入攻击? 如何进行 SQL 注入攻击? 如何防范? 常见面试题 瞎比比 为什么要聊 SQL 注入攻击?我这人有个想法,就是不管自己跳不跳槽,每年都会调个时间去面试一下,一来可以摸摸自己的底,知道自己的价值,二来也可以知道市场的环境局势。可以更好地为自己定位,能及时查缺补漏。所以半...原创 2020-02-22 14:40:45 · 561 阅读 · 0 评论