memcached过期策略

logo 32 2023-06-11

1、memcached的过期时间,有一个最大时限就是30天,若超过30天,存储时返回true,但是在取数据的时候取不到(这个key是1秒后过期的)。 2、memcached的缓存失效策略是LRU(最近最少使用)加上到期失效策略。当向memcached存储数据时,你可能会设置一个过期时间,可以是永久也可以是一段时间,但是 ...

详情...

清缓存要放到事务外部

logo 98 2023-01-11

对于数据库操作之后的清缓存要放到数据库事务外部 若事务未提交之前清了缓存,在清缓存到事务提交这段时间内,若其他的方重新生成缓存,会生成老数据的缓存 因此若需要清缓存一定要在事务提交之后。 ...

详情...

缓存的三种读写模式

logo 603 2022-06-19

一、Cache Aside(旁路缓存) 读操作 客户端先读 cache,如果 cache 没有,则读 DB ,同时将从 DB中读取的数据回写到 cache。 写操作 由客户端先更新 DB ,然后直接将 key 从 Cache 中删除,由 DB 来驱动缓存数据的更新。 特点 这种模式的特点是,业务端处理所有数据访问 ...

详情...

缓存构建思想

logo 658 2022-06-19

缓存的基本思想 缓存构建的基本思想是利用时间局限性原理,通过空间换时间来达到加速数据获取的目的,同时由于缓存空间的成本较高,在实际设计架构中还要考虑访问延迟和成本权衡问题。 时间局限性原理 获取过一次的数据在未来会被多次引用,比如一条微博被一个人感兴趣并阅读后,它大概率还会被更多人阅读,当然如果变成热门微博后,会被数 ...

详情...

缓存穿透、缓存击穿、缓存雪崩的理解

logo 100 2022-01-06

缓存穿透 缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大。 解决方案: 接口层增加校验,如用户鉴权校验,id做基础校验,id<=0的直接拦截; 从缓存取不到的数据,在数据库中也没有取到,这时也可 ...

详情...