1、什么是 Redis?
Redis 本质上是一个 Key-Value 类型的内存数据库,很像 memcached,整个数据库统统
加载在内存当中进行操作,定期通过异步操作把数据库数据 flush 到硬盘上进行保存。因为
是纯内存操作,Redis 的性能非常出色,每秒可以处理超过 10 万次读写操作,是已知性能
最快的 Key-Value DB。
Redis 的出色之处不仅仅是性能,Redis 最大的魅力是支持保存多种数据结构,此外单个
value 的最大限制是 1GB,不像 memcached 只能保存 1MB 的数据,因此 Redis 可以用
来实现很多有用的功能,比方说用他的 List 来做 FIFO 双向链表,实现一个轻量级的高性 能
消息队列服务,用他的 Set 可以做高性能的 tag 系统等等。另外 Redis 也可以对存入的
Key-Value 设置 expire 时间,因此也可以被当作一 个功能加强版的 memcached 来用。
Redis 的主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因
此 Redis 适合的场景主要局限在较小数据量的高性能操作和运算上。
2、Redis 相比 memcached 有哪些优势?
(1) memcached 所有的值均是简单的字符串,Redis 作为其替代者,支持更为丰富的数据类
型
(2) Redis 的速度比 memcached 快很多
(3) Redis 可以持久化其数据
3、Redis 支持哪几种数据类型?
String、List、Set、Sorted Set、hashes
4、Redis 主要消耗什么物理资源?
内存。
5、Redis 的全称是什么?
Remote Dictionary Server。
6、Redis 有哪几种数据淘汰策略?
noeviction:返回错误当内存限制达到并且客户端尝试执行会让更多内存被使用的命令(大
部分的写入指令,但 DEL 和几个例外)
allkeys-lru: 尝试回收最少使用的键(LRU),使得新添加的数据有空间存放。
volatile-lru: 尝试回收最少使用的键(LRU),但仅限于在过期集合的键,使得新添加的数据
有空间存放。
allkeys-random: 回收随机的键使得新添加的数据有空间存放。
volatile-random: 回收随机的键使得新添加的数据有空间存放,但仅限于在过期集合的键。
volatile-ttl: 回收在过期集合的键,并且优先回收存活时间(TTL)较短的键,使得新添加的
数据有空间存放。