Redis
文章平均质量分 51
.L.JIN.Jie
这个作者很懒,什么都没留下…
展开
-
如何保证缓存与数据库双写时的数据一致性?
读取数据的时候,如果发现数据不在缓存中,并且此时队列里有更新库存的操作,那么将重新读取数据+更新缓存的操作,根据唯一标识路由之后,也将发送到同一个jvm内部的内存队列中。多个读库更新缓存的请求串在同一个队列中是没意义的,因此可以做过滤,如果发现队列中已经有了该数据的更新缓存的请求了,那么就不用再放进去了,直接等待前面的更新操作请求完成即可,待那个队列对应的工作线程完成了上一个操作(数据库的修改)之后,才会去执行下一个操作(读库更新缓存),此时会从数据库中读取最新的值,然后写入缓存中。原创 2024-01-24 10:11:17 · 1413 阅读 · 0 评论 -
什么是缓存雪崩?
如果缓在某一个时刻出现大规模的key失效,那么就会导致大量的请求打在了数据库上面,导致数据库压力巨大,如果在高并发的情况下,可能瞬间就会导致数据库宕机。均匀过期:设置不同的过期时间,让缓存失效的时间尽量均匀,避免相同的过期时间导致缓存雪崩,造成大量数据库的访问。如把每个Key的失效时间都加个随机值,造成缓存雪崩的关键在于同一时间的大规模的key失效,主要有两种可能:第一种是Redis宕机,第二种可能就是采用了相同的过期时间。分级缓存:第一级缓存失效的基础上,访问二级缓存,每一级缓存的失效时间都不同。原创 2024-01-20 12:12:02 · 415 阅读 · 0 评论 -
Redis的常用场景有哪些?
在很多互联网公司中都使用了分布式技术,分布式技术带来的技术挑战是对同一个资源的并发访问,如全局ID、减库存、秒杀等场景,并发量不大的场景可以使用数据库的悲观锁、乐观锁来实现,但在并发量高的场合中,利用数据库锁来控制资源的并发访问是不太理想的,大大影响了数据库的性能。集群模式下,在应用不多的情况下一般使用容器自带的session复制功能就能满足,当应用增多相对复杂的系统中,一般都会搭建以Redis等内存数据库为中心的session服务,session不再由容器管理,而是由session服务及内存数据库管理。原创 2024-01-16 18:28:11 · 603 阅读 · 0 评论 -
Redis 常用的五种基本数据结构
Redis(Remote Dictionary Server)是一个使用内存作为数据存储的开源键值存储系统,它支持多种数据结构,如字符串、哈希、列表、集合和有序集合等。有序集合(Sorted Set):也叫Zset,类似于集合,但每个成员都关联着一个分数(score),可以根据分数对成员进行排序,同时保持唯一性。集合(Set):无序的唯一值的集合,支持对集合执行添加、删除和集合间的交集、并集、差集等操作。列表(List):按照插入顺序存储一组有序的值,可以在列表的两端执行插入、删除和访问操作。原创 2023-10-23 15:37:59 · 66 阅读 · 0 评论