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是一种批量操作的机制,可以在一个连接上发送多个命令,减少通信开销,提高性能。