Java高频面试题- 每日三连问?【Day21】 — Redis篇(一)

2022-04-12 14:11:59 浏览数 (1)

问题导读

一、Redis 支持哪些数据类型?

二、Redis 的优势有哪些?

三、redis 过期键的删除策略?

01

Redis 支持哪些数据类型?

正经回答:

Redis 支持五种数据类型:

string(字符串)

hash(哈希)

list(列 表)

set(集合)

zsetsorted set(有序集合)

我们实际项目中比较常用的是 string,hash 如果你是 Redis 中高级用户,还需要加上下面 几种数据结构HyperLogLog、Geo、Pub/Sub。

如果你说还玩过 Redis Module,像 BloomFilter,RedisSearch,Redis-ML,也是加分项。

分享朋友圈,每天进步一点点~

02

Redis 的优势有哪些?

正经回答:

性能极高:

Redis 能读的速度是 110000 次/s,写的速度是 81000 次 /s 。

丰富的数据类型:

Redis 支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。

原子操作:

Redis 的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。

单个操作是原子性的。多个操作也支持事务,即原子性,通过 MULTI 和 EXEC 指令包起来。

丰富的特性:

Redis 还支持 publish/subscribe, 通知, key 过期等等特性。

03

redis 过期键的删除策略?

正经回答:

定时删除:

在设置键的过期时间的同时,创建一个定时器 timer.,让定时器在键的过期时间来临时,立即执行对键的删除操作。

惰性删除:

放任键过期不管,但是每次从键空间中获取键时,都检查取得的键是否过期, 如果过期的话,就删除该键;如果没有过期,就返回该键。

定期删除:

每隔一段时间程序就对数据库进行一次检查,删除里面的过期键。

至于要删除多少过期键,以及要检查多少个数据库,则由算法决定。

- End -

0 人点赞