背景 一般我们可以用HashMap做本地缓存,但是HashMap功能比较弱,不支持Key过期,不支持数据范围查找等。故在此实现了一个简易的本地缓存,取名叫fastmap。 项目地址github: https://github.com/hdwang123/fastmapgitee:https://gitee.com/hdwang123/fastmap 功能1.支持数据过期2.支持等值查找3.支持范围查找4.支持key排序 实现思路1.等值查找采用HashMap2.范围查找采用TreeMap3.数据过期实现:调用相关查询方法时清理过期Key + 定时(每秒)清理一遍过期Key4.使用两个Ree
背景 一般我们可以用HashMap做本地缓存,但是HashMap功能比较弱,不支持Key过期,不支持数据范围查找等。故在此实现了一个简易的本地缓存,取名叫fastmap。 项目地址github: https://github.com/hdwang123/fastmapgitee:https://gitee.com/hdwang123/fastmap 功能1.支持数据过期2.支持等值查找3.支持范围查找4.支持key排序 实现思路1.等值查找采用HashMap2.范围查找采用TreeMap3.数据过期实现:调用相关查询方法时清理过期Key + 定时(每秒)清理一遍过期Key4.使用两个Ree
缓存过期策略定时删除没人用含义:在设置key的过期时间的同时,为该key创建一个定时器,让定时器在key的过期时间来临时,对key进行删除优点:该策略可以立即清除过期的数据,保证内存被尽快释放缺点:若过期key很多,删除这些key会占用很多的CPU时间,在CPU时间紧张的情况下,CPU不能把所有的时间用来做要紧的事儿,还需要去花时间删除这些key定时器的创建耗时,若为每一个设置过期时间的key创建一个定时器(将会有大量的定时器产生),性能影响严重惰性删除内置策略含义:key过期的时候不删除,只有当访问这个key的时候才去判断缓存是不是过期,若过期,则删除,返回null。优点:删除操作只发生在从
缓存过期策略定时删除没人用含义:在设置key的过期时间的同时,为该key创建一个定时器,让定时器在key的过期时间来临时,对key进行删除优点:该策略可以立即清除过期的数据,保证内存被尽快释放缺点:若过期key很多,删除这些key会占用很多的CPU时间,在CPU时间紧张的情况下,CPU不能把所有的时间用来做要紧的事儿,还需要去花时间删除这些key定时器的创建耗时,若为每一个设置过期时间的key创建一个定时器(将会有大量的定时器产生),性能影响严重惰性删除内置策略含义:key过期的时候不删除,只有当访问这个key的时候才去判断缓存是不是过期,若过期,则删除,返回null。优点:删除操作只发生在从
有一天,产品一哥“林哥”来找我,跟我说:“小李,咱们现在一个需求,商品定时下架的逻辑,这个咱们能做到吗?”,我一想,今年的绩效跟着产品大佬走,当即拍着胸脯说道:“林哥,你就放一百个心,包在我身上~”,然后开始头脑风暴,毕竟要向前(钱)看。案例商品定时下架方案一:消息队列首先我想到当运营童鞋创建(或修改下架时间)商品后,就把该商品放到消息队列中,这样利用RabbitMQ的消息TTL加死信队列的特性,这个需求搞定,安排上线~方案二:定时任务+消息队列过了一段时间,架构师发哥心急火燎的来找我,我一看这阵势这是有大事吧,发哥不等我开口,说:“小李,快看看系统,运营童鞋来找我说,商品到下架时间还能买到
有一天,产品一哥“林哥”来找我,跟我说:“小李,咱们现在一个需求,商品定时下架的逻辑,这个咱们能做到吗?”,我一想,今年的绩效跟着产品大佬走,当即拍着胸脯说道:“林哥,你就放一百个心,包在我身上~”,然后开始头脑风暴,毕竟要向前(钱)看。案例商品定时下架方案一:消息队列首先我想到当运营童鞋创建(或修改下架时间)商品后,就把该商品放到消息队列中,这样利用RabbitMQ的消息TTL加死信队列的特性,这个需求搞定,安排上线~方案二:定时任务+消息队列过了一段时间,架构师发哥心急火燎的来找我,我一看这阵势这是有大事吧,发哥不等我开口,说:“小李,快看看系统,运营童鞋来找我说,商品到下架时间还能买到
很久没开的k8s测试环境,今天打开发现在master节点查看node发现node2notready状态在node2节点查看发现kubelet停止运行了kubelet报错:partoftheexistingbootstrapclientcertificateisexpired:2022-06-04通过查看/etc/kubernetes/kubelet.conf发现证书路径/var/lib/kubelet/pki/kubelet-client-current.pemcat/etc/kubernetes/kubelet.confapiVersion:v1clusters:-cluster:certi
很久没开的k8s测试环境,今天打开发现在master节点查看node发现node2notready状态在node2节点查看发现kubelet停止运行了kubelet报错:partoftheexistingbootstrapclientcertificateisexpired:2022-06-04通过查看/etc/kubernetes/kubelet.conf发现证书路径/var/lib/kubelet/pki/kubelet-client-current.pemcat/etc/kubernetes/kubelet.confapiVersion:v1clusters:-cluster:certi
Expiresessioninflaskinajaxcontext我正在使用permanent_session_lifetime在一段时间不活动后使用户的会话到期。问题是,这个请求是通过ajax发出的,所以我不能用Flask的正常行为在ajax上下文中重定向。1http://xxxx/login?next=%2Fusers%2Fajax_step1如果Flask会话到期,我想在before_request中重定向到我的logout路由,而不是这个。我该怎么做?12345@mod.before_requestdefmake_session_permanent(): session.modifi
Expiresessioninflaskinajaxcontext我正在使用permanent_session_lifetime在一段时间不活动后使用户的会话到期。问题是,这个请求是通过ajax发出的,所以我不能用Flask的正常行为在ajax上下文中重定向。1http://xxxx/login?next=%2Fusers%2Fajax_step1如果Flask会话到期,我想在before_request中重定向到我的logout路由,而不是这个。我该怎么做?12345@mod.before_requestdefmake_session_permanent(): session.modifi