以下是 Redis 面试问题和答案,可以帮助应届毕业生和有经验的应聘者获得理想的工作。
1)什么是Redis?
Redis 是一种高级键值数据存储和缓存。它也被称为数据结构服务器,因为键不仅包含字符串,还包含哈希、集合、列表和有序集。使用 Redis 的公司包括 StackOverflow、Twitter、Github 等。
免费 PDF 下载:Redis 缓存面试问题及答案
2)解释一下Redis的复制特性?
Redis 支持简单的主从复制。建立关系后,主服务器上的数据将传输到从服务器上。完成后,主服务器上的所有更改都将复制到从服务器上
3)Memcached 和 Redis 有什么区别?
Redis的 |
Memcached的 |
- Redis 也可以缓存信息,但还具有持久性和复制等附加功能
- Redis 不支持 LRU(最近最少使用)值驱逐功能
- 在 Redis 中,你可以设置所有操作的超时时间,当内存已满时,它会查看三个随机键并删除最接近过期时间的键
- Redis 不支持 CAS(Check and Set)。它对于维护缓存一致性很有用
- Redis 具有更强大的数据结构;它可以处理字符串、二进制安全字符串、二进制安全字符串列表、排序列表等。
- Redis 的最大密钥长度为 2GB
- Redis 是单线程的
|
- Memcached只缓存信息。
- Memcached 支持 LRU(最近最少使用)值驱逐功能
- 在 Memcached 中,当内存溢出时,最近未使用的(LRU-最近最少使用的)将被删除
- Memcached 支持 CAS(检查并设置)
- 在 Memcached 中,您必须序列化对象或数组才能保存它们,而为了读取它们,您必须对它们进行反序列化。
- Memcached 的最大长度为 250 字节
- Memcached 是一个多线程
|
4)使用Redis有什么优点?
使用 Redis 的优点是
- 它提供高速
- 它支持服务器端锁定
- 它有很多客户端库
- 它具有命令级原子操作(tx操作)
5)Redis 的局限性是什么?
- 它是单线程的
- 对一致性哈希的客户端支持有限
- 持久性开销很大
- 尚未广泛部署
Redis 面试问题
6)列出Redis的操作键?
Redis的操作键包括
- TYPE 键
- TTL 键
- KEYS 模式
- EXPIRE 关键秒数
- EXPIREAT 密钥时间戳
- EXISTS 键
- DEL键
7)哪些 PHP 模块可以与 Redis 一起使用?
在 PHP 模块中,PRedis 比 Redid PHP 绑定或 Resident 更可取
8)Redis 是否兼具速度和耐用性?
不是,Redis 故意牺牲了耐用性来提高速度。在 Redis 中,如果发生系统故障或崩溃,Redis 会写入磁盘,但可能会落后并丢失未存储的数据。
Redis 缓存面试题
9)如何提高 Redis 的持久性?
提高 Redis 的持久性
“仅附加文件” 可以通过使用磁盘上的 fsync 数据进行配置。
- 每次将新命令添加到append log文件时都会进行fsync():很安全但是很慢
- 每秒执行一次 Fysnc():速度很快,但如果系统出现故障,可能会丢失 1 秒的数据
- 永远不要使用 fsync():这是一个不安全的方法,并且你的数据处于 运行系统
10)请提及使用 Redis 时需要注意哪些事项?
使用 Redis 时必须注意
- 选择一致的方法来命名和添加前缀。管理命名空间
- 创建一个关键前缀的“注册表”,将每个内部文档映射到“拥有”它们的应用程序
- 对于您放入 Redis 基础架构的每个类:设计、实现和测试垃圾收集或数据迁移到档案存储的机制
- 在对应用程序部署进行大量投入之前,设计、实现和测试分片库,并确保在每台服务器上保留一份“分片”的复制注册表
- 将所有 K/V 存储和相关操作分离到你自己的库/API 或服务中
这些面试问题也会对你的口试有帮助
问题 7 和 10 是重复的。也许其中一个问题可能是关于 Redis 的潜在用例。
错误已修复!感谢您告知我们