关于缓存一致性的问题总结

0.前言记录一下面试过程中对于缓存一致性问题的回答方式,偏口语化。 对于解决这个问题我采取了两种策略,一种是超时剔除策略,一种是主动更新的策略。 1.超时剔除策略超时剔除的策略更多的可以依赖于redis对存储的数据设置TTL过期时间,当超时之后就剔除。适用于数据变更较小的低一致性的场景。 2.主动更新策略对于主动更新策略更多是程序员根据编码来实现数据一致性的问题,针对于对数据一致性要求较高且...

发布于 面试

Redis分布式锁

0.前言记录面试过程中关于Redis分布式锁相关问题的口语式回答。 使用redis的setNX命令,setNX的特性是这样的,当一个线程进来往redis中通过setNX去存储一个值的时候,比如说小明这个键没有值的时候,它会往里面存一个值,然后返回true,然后又一个线程来往小明这个键里通过setNX存储一个值的时候,发现有值,此时就会返回false。因此,当一个用户请求进来的时候,通过set...

发布于 面试

Go春秋招面试记录

一、基础部分1、golang 中 make 和 new 的区别?使用场景区别:make只可以用来分配以及初始化类型为slice、map,chan的数据。new可以分配任意类型的数据,并且置为0。返回值区别:make返回的是slice、map,chan类型本身。new返回的是指向该类型的指针。 2、go defer作用,多个 defer 的顺序,defer 在什么时机会修改返回值?作用:def...

发布于 面试