redis面试总结

redis的数据类型和使用场景

1.基本数据类型:
(1)基本数据类型
string字符串:缓存数据、短信验证码、点赞数、幂等操作、防止短信验证码被攻击(防止同一个手机号不停的去攻击)
hash:哈希 :key filed value 购物车。
以用户id为key 商品id为field 商品数量为value,恰好构造成了购物车的3个要素
list列表:有序可重复。关注列表、朋友圈点赞
set集合:无序且唯一。共同爱好、好友推荐、共同好友
zset(sorted set)有序集合:有序且唯一。按照分数进行排序的,默认是升序。排行榜!
2.高级数据类型
bitmaps:特点:只有两个状态,0和1.使用场景:签到。
hyperloglog:特点:用来做基数统计的;有一定的误差。优点:内存占用是固定的,12k.(只是再pfmerge后才有这个优点。)使用场景:统计在线人数。
Geo:标记经纬度,使用场景:附近的人、美食、加油站。

redis的淘汰策略有哪些

共八种:
1.noeviction:当内存使用超过配置的时候会返回错误,不会驱逐任何键
2.allkeys-lru:加入键的时候,如果过限,首先通过LRU算法驱逐最久没有使用的键
3.volatile-lru:加入键的时候如果过限,首先从设置了过期时间的键集合中驱逐最久没有使用的键
4.allkeys-random:加入键的时候如果过限,从所有key随机删除
5.volatile-random:加入键的时候如果过限,从设置过期时间的键的集合中随机驱逐
6.volatile-ttl:从配置了过期时间的键中驱逐马上就要过期的键
7.volatile-lfu:从所有配置了过期时间的键中驱逐使用频率最少的键 —5.0 后才有
8.allkeys-lfu:从所有键中驱逐使用频率最少的键 —5.0后才有

redis持久化机制

1.RDB
redis默认的持久化机制。会生成一个dump.rdb的文件。备份的是数据。
触发机制:
save、flushall、正常关闭
2.AOF
将写命令记录到日志中,恢复的时候执行一边日志中的命令。
写数据的三种策略:
每次:可以做到零误差。但是性能很低,不建议
每秒:每秒记录一次。
系统控制:由系统控制,整体不可控

RDB和AOF的区别

在这里插入图片描述
在这里插入图片描述

redis集群方案总结

主从复制:
指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称之为主节点,后者称之为从节点;数据的复制是单向的,只能由主节点到从节点。主节点以以写为主,从节点以读为主。当主节点宕机,从节点依然可以提供服务。主节点恢复后,依然可以正常工作。

哨兵机制:
哨兵是一个独立的进程,7*24小时运行,用来监视节点的运行状况,当主节点宕机时,哨兵会通过投票重新选举一个从库变成主库,使用发布订阅模式通知其他的从节点。一般哨兵节点会建议以奇数为单位,便于进行投票选举。

高可用集群:
去中心化,要求最少六个节点(三主三从),每个主节点是平等的。从节点只提供备份,当主节点宕机后,也会进行投票选举。

缓存穿透、缓存击穿、缓存雪崩

(1)缓存穿透:缓存和数据库都没有的数据,导致大量请求直接访问数据库,造成数据库宕机。解决方案:1.redis缓存这个没有的数据,设置为空值 2.采用布隆过滤器,将所有可能存在的数据哈希到一个足够大的bitmap中,一个一定不存在的数据会被bitmap拦截掉
(2)缓存击穿:指一个缓存过期,缓存中没有但数据库中有的数据,这时由于并发用户特别多,大量请求去数据库去取数据,引起数据库压力瞬间增大。解决方案:1.永不过期。2.使用互斥锁
(3)缓存雪崩:指缓存中数据大批量已经到了过期时间,而查询数据量巨大,引起数据库压力过大甚至宕机。解决方案:1.使用永不过期 2.设置不同缓存数据的过期时间为随机。3.限流

分布式锁

数据一致性

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值