一个业务模型引出对redis的好奇:
提出问题:
1.redis 的五种数据类型分别由什么数据结构实现?
2.redis 的字符串类型既可以存储字符串,也可以存储整数和浮点数,甚至是二进制位(使用setbit)
redis 内部是如何实现存储这些值?
3.redis的一部分命令只能对特定的数据类型执行
eg:append 只能对字符串执行 hset只能对哈希表执行
而另一部分可以对所有数据类型执行
eg:del type 和expire
不同的命令在执行的时候是如何进行类型检查的?
redis内部是否实现了一个类型系统?
4.redis的数据库是怎样存储各种不同数据类型的键值对的?
数据库中的过期性又是如何实现自动删除的?
5.除了数据库之外,redis还拥有发布 订阅 脚本 事务 等特性,这些特性如何实现?
6.redis使用什么模型或者模式来处理客户端的命令请求?
一条命令从发布到返回需要经历什么步骤?