- 博客(14)
- 收藏
- 关注
原创 Redis的五种基本数据类型
Redis 内部提供了多种数据结构,比如简单动态字符串(SDS)、双端链表、字典、压缩列表、整数集合等等。但 Redis 并没有直接使用这些数据结构来实现键值对数据库,而是基于这些数据结构创建了一个对象系统,这个系统包含字符串对象、列表对象、哈希对象、集合对象和有序集合对象这五种类型的对象。通过这五种不同类型的对象,Redis 可以在执行命令之前,根据对象的类型来判断一个对象是否可以执行给定的命令。
2023-06-18 20:29:16
381
原创 Redis 缓存数据一致性(面试必问)
在大多数业务场景下,我们会把 Redis 作为只读缓存使用。针对只读缓存来说,我们既可以先删除缓存值再更新数据库,也可以先更新数据库再删除缓存。先删除缓存值再更新数据库,有可能导致请求因缓存缺失而访问数据库,给数据库带来压力;如果业务应用中读取数据库和写缓存的时间不好估算,那么,延迟双删中的等待时间就不好设置。
2023-06-07 17:08:19
482
原创 Redis 分布式锁
在分布式系统中,当有多个客户端需要获取锁时,我们需要分布式锁。此时,锁是保存在一个共享存储系统中的,可以被多个客户端共享访问和获取。Redis 本身可以被多个客户端共享访问,正好就是一个共享存储系统,可以用来保存分布式锁。而且 Redis 的读写性能高,可以应对高并发的锁操作场景。和单机上的锁类似,分布式锁同样可以用一个变量来实现。客户端加锁时需要判断锁变量的值,根据锁变量值来判断能否加锁成功;释放锁时需要把锁变量值设置为 0,表明客户端不再持有锁。
2023-06-07 16:33:00
183
原创 Redis之缓存雪崩、击穿、穿透
在使用缓存时,除了数据不一致问题,我们常常还会面临缓存异常的三个问题,分别是缓存雪崩、缓存击穿和缓存穿透。这三个问题一旦发生,会导致大量的请求积压到数据库层。如果请求的并发量很大,就会导致数据库宕机或是故障,产生很严重的生产事故。下面就讲解下这三个问题的表现、诱发原因以及解决方法。缓存雪崩是指大量的应用请求无法在 Redis 缓存中进行处理,紧接着,应用将大量请求发送到数据库层,导致数据库层的压力激增。缓存雪崩一般是由两个原因导致的,应对方案也有所不同,我们一个个来看。第一个原因是:缓存中有大量数据同时过期
2023-06-07 16:28:41
1051
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人