上一页 1 2 3 4 5 6 ··· 18 下一页

2022年12月11日

浅谈Redis大Key与热Key

摘要: 如何定义大 Key 和 热 Key 如何定义大 Key 如何定义热 Key 大 Key 和 热 Key 产生的原因 大 Key 和 热 Key 有哪些危害 大 Key 的危害 热 Key 的危害 如何发现大 Key 和 热 Key 通过原生自带的方式 通过 redis-cli 的 bigkeys 和 阅读全文

posted @ 2022-12-11 16:52 爱笑的张飞 阅读(537) 评论(0) 推荐(0) 编辑

2022年10月30日

浅谈Redis与分布式锁

摘要: 为什么需要分布式锁 Redis如何实现分布式锁 如何避免死锁? 锁被别人释放怎么办? 锁过期时间不好评估怎么办? Redlock 真的安全吗 为什么要在多个实例上加锁? 为什么大多数实例加锁成功,才算申请锁成功? 为什么大多数实例加锁成功之后,还要计算加锁的累计耗时? 为什么释放锁,要操作所有节点? 阅读全文

posted @ 2022-10-30 22:30 爱笑的张飞 阅读(74) 评论(0) 推荐(0) 编辑

2022年7月31日

缓存一致性

摘要: 引入缓存提高性能 缓存利用率和一致性问题 缓存利用率 一致性问题 先更新缓存,后更新数据库 先更新数据库,后更新缓存 并发问题 删除缓存可以保证一致性吗? 一致性问题 先删除缓存,后更新数据库 先更新数据库,后删除缓存 如何保证两步都执行成功? 延迟双删问题和主从延迟问题 可以做到强一致吗? 总结 阅读全文

posted @ 2022-07-31 23:09 爱笑的张飞 阅读(33) 评论(0) 推荐(0) 编辑

2021年11月20日

zookeeper(1)-集群的搭建

摘要: 集群搭建 1. 下载二进制文件 $ wget --no-check-certificate https://mirrors.ustc.edu.cn/apache/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz $ tar -xz 阅读全文

posted @ 2021-11-20 21:00 爱笑的张飞 阅读(34) 评论(0) 推荐(0) 编辑

2021年6月7日

git 修改 .gitignore 不生效

摘要: 在使用 Git 时候,发现在 .gitignore 文件中添加内容后,推送成功后并没有生效。 出错原因: .gitignore 文件的内容不对历史文件生效 情景复现: 1. 远端已经有了 .idea 配置文件夹 2. 在 .gitignore 中添加 .idea 3. commit && push 阅读全文

posted @ 2021-06-07 00:46 爱笑的张飞 阅读(255) 评论(0) 推荐(0) 编辑

2021年3月11日

NSQ(8)-有赞相关改进

摘要: 如何保证消息队列的高可用(HA) NSQ 本身就是一个分布式消息队列,且支持水平扩展,无单点故障,能在无中断的情况下无缝添加集群结点。 nsq用到了集群去保证整个服务的高可用,但并不能保证单个topic的高可用,不过你可以用特定方案间接去保证。 【注】producer 指定在某台nsqd节点发送生产 阅读全文

posted @ 2021-03-11 14:10 爱笑的张飞 阅读(680) 评论(0) 推荐(0) 编辑

NSQ(7)-nsq存在的问题

摘要: nsq存在的缺陷 部署的难度 ​ nsq提供了一种消费者端进行服务发现的模型,所以无需告诉消费者去哪寻找对于的主题(Topic)在哪个nsqd实例上。 ​ 然而,它并没有提供一种方案去解决一个生产者应该把消息发布到哪个nsqd实例上的问题,虽然nsqd推荐一个生产者对于部署一个nsqd实例,来实现p 阅读全文

posted @ 2021-03-11 14:09 爱笑的张飞 阅读(597) 评论(0) 推荐(0) 编辑

NSQ(6)-nsq相关策略

摘要: 1:nsq的流量控制 RDY 消息中间件的实现无非两种套路,一种让客户端pull,典型的比如kafka便是如此,而另一种则是push,也就是让客户端不需要做任何操作,只需要做好conn便可以源源不断收到服务端的推送,典型的代表就是我们今天介绍的nsq。 pull的优势在于客户端可以自己做流控,比如客 阅读全文

posted @ 2021-03-11 14:08 爱笑的张飞 阅读(473) 评论(0) 推荐(0) 编辑

NSQ(5)-nsqlookupd执行流程源码剖析

摘要: nsqlookupd执行流程源码剖析 func (p *program) Start() error { opts := nsqlookupd.NewOptions() flagSet := nsqlookupdFlagSet(opts) flagSet.Parse(os.Args[1:]) if 阅读全文

posted @ 2021-03-11 14:07 爱笑的张飞 阅读(130) 评论(0) 推荐(0) 编辑

NSQ(4)-nsqd执行流程

摘要: nsqd执行流程源码剖析 func (n *NSQD) Main() error { exitCh := make(chan error) var once sync.Once exitFunc := func(err error) { once.Do(func() { if err != nil 阅读全文

posted @ 2021-03-11 14:06 爱笑的张飞 阅读(176) 评论(0) 推荐(1) 编辑

上一页 1 2 3 4 5 6 ··· 18 下一页

导航