Redis面试 重点在于原理解析(redis 面试原理)
Redis是一种开源的内存键值存储系统,是一种轻量级的内存数据库,既可以作为数据库,也可以作为缓存系统。它已经成为当今在数据库和缓存领域最流行的技术之一。由于 Redis 的快速、可扩展性强, 在企业应用的场景中,拥有广泛的应用价值。
Redis 面试的重点强调的是其原理解析,掌握 Redis 的核心原理是证明应聘者认真学习和使用过 Redis 的证据,从而能够完全掌握 Redis 常用的特性和功能,以及在实际工作中的应用场景。
比如,面试时可能会询问面试者对 Redis 内部底层实现结构有什么理解,比如 Redis 数据存储到内存中,数据如何存储等。面试者可以回答 Redis 自身是由 Unix 套接字构建的,支持同步 I/O 多路复用,其数据存储采用内存映射文件来存放存储在磁盘上的数据,如果 Redis 内存中的空间不足,使用 LRU 策略从内存中卸载一部分数据,并存储到文件中。
此外,需要了解 Redis 的数据结构,比如 Redis 内置的五大数据结构,即 string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合) 。比如,面试者要知道字符串可以存储任意的字符串,其中还包括 JSON 字符串、序列化的对象等;哈希可以存储多个字段组合,hash 数据类型可以将多个字段和值存储在一个 hash 中;列表用于储存多个字符串,类似于链表;集合用于存储多个不重复的字符串,它类似于数学中的集合;有序集合和集合类似,但有序集合的元素是按照根据优先级(score)排序排列的。
Redis 还有一些常用的命令,如 get、set 等,可以用来操控 Redis 的数据类型,如获取和修改数据,面试者也要掌握基本的 Redis 命令,以便面试成功。
import redis
# 连接redisr = redis.Redis(host = 'localhost', port = 6379, decode_responses = True)
# 设置key值r.set("name", "Tom")
# 获取key值name = r.get("name")
print("name是:{}".format(name))