![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Redis
文章平均质量分 55
8818766
这个作者很懒,什么都没留下…
展开
-
redis知识点汇总,Redis事务
为什么Redis是单线程的Redis是基于内存的操作,CPU不是Redis的瓶颈,Redis的瓶颈最有可能是机器内存的大小或者网络带宽。既然单线程容易实现,而且CPU不会成为瓶颈,那就顺理成章地采用单线程Redis优点基于内存操作。内存读写速度快支持持久化。Redis支持RDB和AOF两种持久化机制,持久化功能可以有效地避免数据丢失问题。支持事务。Redis的所有操作都是原子性的,同时Redis还支持对几个操作合并后的原子性执行支持主从复制。主节点会自动将数据同步到从节点,可以进行读写分离I原创 2022-03-07 23:10:27 · 434 阅读 · 0 评论 -
redis过期键删除策略
redis过期键删除策略原创 2021-11-11 21:25:15 · 658 阅读 · 0 评论 -
redis数据结构,zest为什么不用红黑树
5种基本数据结构string,list,hash,set,zsetstring表示的是一个可变的字节数组,采用预分配冗余空间的方式来减少内存的频繁分配list表示双向链表,随机定位性能较弱,首尾插入删除性能较优hash第一维是数组,第二维是链表,采用拉链法解决哈希冲突。扩容 当hash内部的元素比较拥挤时(hash碰撞比较频繁),就需要进行扩容。扩容需要申请新的两倍大小的数组,然后将所有的键值对重新分配到新的数组下标对应的链表中(rehash)。如果hash结构很大,比如有上百万个键值对,那原创 2021-11-11 21:05:53 · 1590 阅读 · 0 评论 -
Redis缓存穿透,缓存雪崩,缓存击穿
缓存穿透缓存穿透是指查询一个不存在的数据,由于缓存是不命中时被动写的,如果从DB查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到DB去查询,失去了缓存的意义。在流量大时,可能DB就挂掉了。缓存空值,不会查数据库。采用布隆过滤器,将所有可能存在的数据哈希到一个足够大的bitmap中,查询不存在的数据会被这个bitmap拦截掉,从而避免了对DB的查询压力。布隆过滤器的原理:当一个元素被加入集合时,通过K个散列函数将这个元素映射成一个位数组中的K个点,把它们置为1。查询时,将元素通过散列原创 2021-11-02 23:32:28 · 97 阅读 · 0 评论 -
如何保证缓存与数据库双写时的数据一致性
1、先删除缓存再更新数据库进行更新操作时,先删除缓存,然后更新数据库,后续的请求再次读取时,会从数据库读取后再将新数据更新到缓存。存在的问题:删除缓存数据之后,更新数据库完成之前,这个时间段内如果有新的读请求过来,就会从数据库读取旧数据重新写到缓存中,再次造成不一致,并且后续读的都是旧数据。2、先更新数据库再删除缓存进行更新操作时,先更新MySQL,成功之后,删除缓存,后续读取请求时再将新数据回写缓存。存在的问题:更新MySQL和删除缓存这段时间内,请求读取的还是缓存的旧数据,不过等数据库更新完成原创 2021-11-02 22:27:06 · 184 阅读 · 0 评论 -
Redis 持久化机制,AOF重写阻塞原因,RDB阻塞
定义持久化就是把内存的数据写到磁盘中,防止服务宕机导致内存数据丢失RDB的方式会根据指定的规则定时将内存中的数据存储在硬盘上RDB是 Redis 默认的持久化方案。RDB持久化时会将内存中的数据写入到磁盘中,在指定目录下生成一个dump.rdb文件。Redis 重启会加载dump.rdb文件恢复数据,将数据从硬盘载入内存。通过 RDB 方式的持久化,一旦Redis异常退出,就会丢失最近一次持久化以后更改的数据。优点:Redis 加载 RDB 恢复数据远远快于 AOF 的方式。使用单独原创 2021-11-02 22:11:57 · 394 阅读 · 0 评论