- 博客(2)
- 收藏
- 关注
原创 每日面试题:redis做为缓存,mysql如何与redis进行同步?
比如有两个线程,线程一来了先删除缓存,线程二来了 查询缓存后发现没有数据,就回去数据库里读,读到一个不一样的数据 然后放入缓存 线程一更新数据库 就导致缓存数据库不一致了。像那些存入缓存中的数据 都是 读多写少 所以 我们可以上一个读写锁 1 共享锁:读锁readLock,加锁之后,其他线程可以共享读操作 2 排他锁:独占锁 writeLock 也叫写锁,加锁之后,阻塞其他线程读写操作 ,在写数据时,添加,能堵塞其他进程的读写。当修改了数据库的数据也要同时更新缓存的数据,缓存和数据库的数据要保持一致。
2024-10-09 20:12:37 432
原创 Redis面试三兄弟!详细解答
解决方案: 1布隆过滤器:布隆过滤器主要用于检查一个元素是否在这个集合中,在项目中我是用redission来实现的 它的底层主要是先初始化一个比较大的数组。里面存2进制 都是0或1 当一个key 来了之后经过三次hash运算,模于数组长度就能找到在数组里面的位置 将其设置为1 这样的话3个位置就能表明key的存在。查找的过程也是一样的。缓存穿透 是 一个不存在的数据频繁访问你的redis 但redis中也没有数据 去数据库中查 数据库查不到数据也不会直接写入缓存 就会导致每次都查数据库。
2024-10-09 19:37:04 47
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人