01 2021 档案

摘要:Redis分布式锁实现 我们通常使用的synchronized或者Lock都是线程锁,对同一个JVM进程内的多个线程有效。因为锁的本质 是内存中存放一个标记,记录获取锁的线程是谁,这个标记对每个线程都可见。然而我们启动的多个订单服务,就是多个JVM,内存中的锁显然是不共享的,每个JVM进程都有自己的 阅读全文
posted @ 2021-01-16 18:44 MrSatan 阅读(355) 评论(0) 推荐(0) 编辑
摘要:缓存有效期和淘汰策略 Redis的数据已经设置了TTL,不是过期就已经删除了吗?为什么还存在所谓的淘汰策略呢?这个原因我们需要从redis的过期策略聊起。 1.redis缓存过期策略 1.1 过期策略 定时过期 会一直循环去检查redis里哪个键过期,会占用大量cpu资源(不推荐)。 惰性过期 所谓 阅读全文
posted @ 2021-01-16 17:14 MrSatan 阅读(159) 评论(0) 推荐(0) 编辑
摘要:python垃圾回收 引用自:Alex老师python垃圾回收讲解 基于C语言源码底层,让你真正了解垃圾回收机制的实现。 引用计数器 标记清除 分代回收 缓存机制 python的C源码(3.8.2版本) 1 引用计数器 1.1 环状双向链表 refchain 在python程序中创建的任何对象都会放 阅读全文
posted @ 2021-01-13 13:59 MrSatan 阅读(242) 评论(0) 推荐(0) 编辑
摘要:bigkey 1、bigkey带来的问题 如果是集群模式下,无法做到负载均衡,导致请求倾斜到某个实例上,而这个实例的QPS会比较大,内存占用也较多;对于Redis单线程模型又容易出现CPU瓶颈,当内存出现瓶颈时,只能进行纵向库容,使用更牛逼的服务器。 涉及到大key的操作,尤其是使用hgetall、 阅读全文
posted @ 2021-01-13 11:26 MrSatan 阅读(8536) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示