redis淘汰策略面试题_Redis系列之常见面试题

1、概览

Redis(Remote Dictionary Server)是一个高性能的key-value内存存储系统,是近几年十分火热的NoSQL数据库的典型代表。她提供了丰富的数据类型,基于内存的设计使其具有高性能的读写能力,在数据库、缓存和消息领域都有什么出色的表现。

2、数据类型

Redis支持丰富的数据类型,如字符串(String),哈希(Hash),列表(List),集合(Set),有序集合(ZSet)与范围查询,Bitmaps,Hyperloglogs 和地理空间(Geospatial)索引半径查询。

其中常见的数据结构类型有5种:String、List、Set、Hash、ZSet。

3、持久机制

Redis常见的持久化机制主要有两种RDB和AOF。

RDB是快照的方式,也是默认的持久化机制,就是每隔一段时间将数据集以快照的方式写入到二进制文件dump.rdb中。

AOF(Append-only file)是会记录每一步写操作,最大限度的保证了数据的安全性。文件往往比RDB的大,运行效率也偏低,但是数据一致性更好。

4、淘汰策略

Redis主要有六种淘汰策略,分两大类:设置过期时间的数据和没有设置的。

volatile-lru:从已设置过期时间的数据集中挑选最近最少使用的数据淘汰;

volatile-ttl:从已设置过期时间的数据集中挑选将要过期的数据淘汰;

volatile-random:从已设置过期时间的数据集中任意选择数据淘汰;

allkeys-lru:从数据集中挑选最近最少使用的数据淘汰;

allkeys-random:从数据集中任意选择数据淘汰;

no-enviction(驱逐):禁止驱逐数据;

5、线程模型

Redis的线程IO模型是单线程的,使用多路线程I/O复用模型来提升处理效率。

单线程,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗 CPU的情况。I/O多路复用,非阻塞IO,采用轮询机制依次处理就绪的流,避免了大量的无用操作。

6、常用工具类

Jedis:提供了较全面的Redis命令的支持,是Redis的Java实现客户端。

Redisson:实现了分布式和可扩展的Java数据结构,如分布式锁。

Lettuce:主要用于分布式缓存框架,线程安全同步,异步和响应,支持集群。

7、事务

Redis支持事务操作,常用的命令有:MULTI、EXEC、DISCARD和WATCH。

8、Redis发布订阅

Redis 发布订阅(pub/sub)是一种消息通信模式,类似于消息队列。订阅者通过SUBSCRIBE命令订阅消息,发布者通过PUBLISH发布消息。

以上都是Redis常见的问题,大家可以参考下。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值