【数据库】Redis(数据类型、跳跃表、持久化、分布式锁、雪崩击穿、淘汰策略等)面试题
Redis
Redis中list的实现原理
list是链表数据结构。但数据量较少时使用的是一种连续内存空间的数据结构ziplist(压缩列表)进行存储。
Redis中zset的底层
zset有两种底层实现,分别是压缩表zipList和跳跃表skipList。
当节点数量<128,并且节点长度<64时,为压缩表,当不满足以上任一条件时,就会转为跳跃表。
zset排行榜能返回一部分吗
可以,使用range()方法
Redis如何实现持久化
RDB和AOF两种方式。
RDB是每隔一定时间用快照的方式将数据同步到磁盘;
AOF是用日志的方式把所有运行过的写操作命令保存起来,在重启服务的时候重新执行一次。
Redis如何实现事务控制
使用MULTI和EXEC命令实现事务。
WATCH 监控一个或多个key值,保证在事务中不被修改;
UNWATCH 取消对某个key的监控
DISCARD 在MULTI之后EXEC之前,取消WATCH命令并清空事务队列,从事务状态中退出。