Redis数据库知识点

Redis支持多种数据类型如String、List、Hash、Set和ZSet,常用于缓存、消息队列、排序等场景。其优势包括单线程模型、内存存储和多路复用技术。文章讨论了缓存可能遇到的问题,如雪崩、击穿和穿透,提出了解决方案。Redis的持久化策略包括RDB和AOF,而过期删除策略结合了惰性删除和定期删除。内存淘汰策略应对缓存污染,确保高效使用内存。
摘要由CSDN通过智能技术生成

1、Redis支持的数据类型

        ·String(简单的动态字符串,保存文本数据和二进制字符串)

                场景:缓存对象、常规计数、分布式锁、共享Session信息

        ·List(由双向列表和压缩列表实现)

                场景:消息队列

        ·Hash(压缩类表和哈希列表实现)

                场景:缓存对象、购物车等

        ·Set(哈希表和整数集合)

                场景:聚合算法场景;如:点赞、抽奖、共同关注

        ·ZSet(压缩列表或跳表实现)

                场景:排序场景、如:排行榜、电话和姓名排序等

2、Redis的优势:

        ·单线程避免线程切换的消耗

        ·存放在内存中,读取速度快

        ·使用多路复用技术(使用一个线程监听多个,当发生I/O事件可以立即处理)

3、缓存可能出现的问题

        ·缓存雪崩问题:当大量缓存同时失效,大量并发请求导致系统崩溃

                解决办法:缓存过期时间随机、常用缓存永不过期

        ·缓存击穿:热点数据过期后,大量请求访问数据库

                解决办法:设置锁、热点数据永不过期

        ·缓存穿透:数据库和缓存都没有该数据

                解决办法:非法请求限制、设置空值或者默认值、使用布隆过滤器进行过滤

4、Redis缓存更新策略:

        旁路缓存策略(适合读多写少):更新时删除缓存,更新数据库后在将数据库的数据写回到缓存

                写策略:先更新数据库数据,再删除缓存的数据

                读策略: 先读取缓存,存在则返回,不存在则从数据库中读取到缓存中

5、redis持久化策略

        ·RDB持久化(使用快照的方式持久化到硬盘中,二进制文件以.rdb结尾)      

        ·AOF持久化(数据持久化实时性,记录命令)

6、过期删除策略

        redis会把key带上过期时间存储到过期字典中,读取缓存时,过期字典中不存在直接读取,存在则与当前系统时间比较判断是否过期。

        包含惰性删除和定期删除

7、redis的内存淘汰策略

        ·缓存污染概念:一次读取大量数据,但只使用一次就未使用了

跳表:将链表进行相关的树的分层,提升读取的效率,与普通链表顺序相比,有点类似B+树的对比分支,层层往下跳跃。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值