![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
缓存
文章平均质量分 96
小田
无人扶我青云志,我自踏雪向山巅。倘若命中无此运,孤身亦可登昆仑。他朝若有翻身时,生吃黄莲也叫甜。
展开
-
[缓存 - tair] tair的基本知识点和架构设计
通过代理解决:对于正常的数据迁移来说,假设桶2,3,4的数据从DataServer A同步到DataServer B,其中2的数据已经迁移完成,3的数据正在迁移,4的数据还没迁移。当因为某台dataserver宕机导致的数据迁移时,客户端会收到ConfigServer发送过来的中间临时状态的路由表,表中会把宕机的DataServer所负责的bucket临时指派给具有其备份副本的DataServer来处理,此时,服务保持可用,但负载可能不均衡,当迁移完成后,才能重新达到一个新的负载均衡的状态。原创 2024-02-28 02:05:59 · 1487 阅读 · 0 评论 -
[缓存 - redis] Redis的基本知识点 数据结构和常用操作命令
redis(remote dicitionary server)是一个高性能的key-value数据库,对数据库的操作是原子性的,采用C语言编写。Set 类型是一个无序并唯一的键值集合,它的存储顺序不会按照插入的先后顺序进行存储。Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。相对于列表,集合也有两个特点:无序、不可重复。原创 2024-02-21 01:49:14 · 988 阅读 · 0 评论 -
[缓存] RingBuff 环形队列、环形缓冲区及有锁无锁实现
由于自旋锁不需要进行线程切换,所以它完全在用户态下实现,加锁开销低,但是由于其采用忙等待的策略,对于短期加锁来说没问题,但是长期锁定的时候就会导致CPU资源的大量消耗。如果读取数据的速度跟不上写入数据的速度,旧的数据将被新写入的数据覆盖。所以当互斥锁加锁失败的时候,就伴随着两次上下文切换的开销,而如果我们锁定的时间较短,可能上下文切换的时间会比锁定的时间还要长。由于自旋锁和互斥锁的失败策略不同,自旋锁采用忙等待的策略,而互斥锁采用线程切换的策略,由于策略不同,它们的应用场景也不同。原创 2024-02-20 03:33:47 · 1453 阅读 · 0 评论