现在测试工程师面试难度越来越大,关于技术方面考察,很多面试官经常会问你是否了解过Redis缓存中间件,这道题一方面是考察你是否对后端技术有一定了解,另一方面也考察你测试工作的深浅。
所以本文将由浅到深、由易到难列举Redis相关面试题,为你弥补缓存中间件的知识盲点,帮助大家在面试中,缓存中间件这块满分通过。
1、Redis是什么?为啥性能好?
Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis是现在最受欢迎的NoSQL数据库之一。
- 首先,采用了多路复用io阻塞机制;
- 然后,数据结构简单,操作节省时间;
- 最后,运行在内存中,自然速度快。
2、数据类型?常见的命令?
有多种数据类型,最常用的就是以下几种
String 字符串类型
set name junchow
get name
set age 20
get age
incr age
decr age
Hash 数据类型
//设置值
hset userinfo name junchow
//解析
hset : cmd
key: userinfo
value: name junchow
//等价于
$userinfo = array('name'=>'junchow')
//获取值
hget userinfo name
List 链表数据
链表类型类似于队列或栈的数据结构,链表可视为存储数据的容器。链表的左侧被称为头部,右侧被称为尾部。
链表可模拟出队列(先进先出),也可以模拟栈(先进后出)。
//从左侧装入 lpush
lpush link1 A
lpush link1 B
//从右侧转入 rpush
rpush link2 A
rpush link2 B
Set 无序集合类型
//向集合set