Redis的基础概念、数据结构、持久化、集群

1. Redis是什么?它有哪些特点?

  • Redis是一个开源的内存数据存储系统,也可以用作缓存和消息中间件。
  • 特点包括高性能、支持多种数据结构、持久化、原子性操作等。

2. Redis支持哪些数据结构?

  • 哈希表(Hashes)
  • 列表(Lists)
  • 集合(Sets)
  • 字符串(Strings)
  • 有序集合(Sorted Sets)

3. Redis的持久化机制有哪些?

  • RDB(Redis Database Backup):定期快照持久化。
  • AOF(Append Only File):追加写日志文件持久化。

4. 什么是RDB和AOF的优缺点?

  • RDB:优点是紧凑,适合备份;缺点是可能会丢失最后一次持久化后的数据。
  • AOF:优点是可以保证数据的完整性;缺点是相对于RDB,文件较大。

5. Redis的过期策略有哪些?

  • 定时删除:在设置过期时间的键上,以定时任务的方式删除。
  • 惰性删除:在访问某个键时,检查是否过期,过期则删除。

6. 什么是LRU(Least Recently Used)淘汰策略?

  • LRU是一种淘汰策略,它会优先淘汰最近最少使用的键。

7. Redis的主从复制是什么?

  • 主从复制是指一个Redis服务器(主服务器)可以复制数据到多个其他Redis服务器(从服务器)的过程。

8. Redis的哨兵是用来做什么的?

  • Redis哨兵用于监控Redis实例的健康状态,自动进行故障转移和提供主从切换的功能。

9. Redis事务是什么?

  • Redis事务是一组命令的集合,通过MULTI、EXEC、DISCARD和WATCH等命令实现。

10. Redis的原子性是如何实现的?

  • Redis通过将一组命令放在事务中,保证这组命令的原子性。

11. 如何在Redis中实现分布式锁?

* 使用SET命令和NX(Not eXists)选项,或者使用Redlock算法等。

12. Redis的数据淘汰策略有哪些?

* 主要有 `volatile-lru`、`volatile-ttl`、`volatile-random`、`allkeys-lru`、`allkeys-random`等。

13. Redis的Pipeline是什么?有什么优势?

* Pipeline是一种批量操作的机制,可以在一个连接上发送多个命令,减少通信开销,提高性能。