1.Redis支持的数据类型?
字符串、hash、list、set、zset
2.什么是Redis持久化?Redis有哪几种持久化方式?优缺点是什么?
快照和追加式文件
3.Redis 有哪些架构模式?讲讲各自的特点
4.使用过Redis分布式锁么,它是怎么实现的?
setnx + expire,多个线程抢占key设置,拿到设置的就抢到了锁
5.使用过Redis做异步队列么,你是怎么用的?有什么缺点?
lpush lpop,对list进行操作
6.什么是缓存穿透?如何避免?什么是缓存雪崩?何如避免?
穿透:访问一个缓存不存在的key,直接访问数据库了
雪崩:redis缓存大面积过期失效,访问压力直接压到数据库中了
击穿:某一时刻某个key失效了,同时大量访问到来,直接访问数据库
7.Redis常用命令
8.为什么Redis 单线程却能支撑高并发?
单线程IO多路复用,同时监听多个socket
直接在内存中操作
9.说说Redis的内存淘汰策略
内存达到某个阈值会触发内存淘汰机制,内存不足以容纳新写入数据时:
1)新写入会报错
2)移除最近最少使用的key
3)随机移除某个key
4)在设置了过期时间的key中,删除最近最少使用的key
5)在设置了过期时间的key中,随机删除
6)在设置了过期时间的key中,优先删除过期时间的key
10.Redis的并发竞争问题如何解决?
网友评论