1、基础内容
1.基础知识
1.0 什么是 Redis?
Redis提供了多种数据类型来支持不同的业务场景。Redis 支持事务持久化、LUA脚本、LRU驱动事件、多种集群方案
redis 是一个 key-value 数据库,定期通过异步操作将数据库数据 flush 到硬盘上保存。因为是纯内存操作,所以Redis 的性能非常出色,是已知性能最快的 key-value 数据库。Redis 支持多种数据结构,然后单个Value 的最大限制为 1GB。所以Redis可以用来实现很多有用的功能。
Redis 的主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此 Redis 适合的场景主要局限在较小数据量的高性能操作和运算上。
推荐阅读:https://www.runoob.com/redis/redis-tutorial.html
1.1 Redis 和 memcached 相比有什么优势?
Redis拥有更为丰富的数据类型。
Redis 的速度更快,另外Redis 可以持久化数据。
Redis 的value的最大限制更大。
1.2 Redis官方为什么不开发windows版本
现在linux 版本已经足够稳定,且用户量很大,无需添加windows版本,反而会带来兼容性问题
1.3 一个字符串类型能存储最大容量是多少?
512M,其键也是 512 M
1.4 Redis 的读和写的速度?
读 110000 写 81000
1.5 Redis 为什么将所有数据都放到内存中?
因为Redis 为了达到更快的读写速度,Redis 会通过异步的方式将数据写入磁盘,所以Redis具有快速和持久化的特征。如果不放到内存中,磁盘I/O会严重影响Redis性能。如果设置了最大使用内存,则数据已有记录到达内存限制后则不能继续插入新值。
1.6 使用 Redis 的优点
访问速度快:因为都在内存中
支持事务
数据类型丰富:支持五种数据存储形式
特性丰富:Redis可用于缓存,消息,按key设置过期时间,过期后将会自动删除。
1.7 Redis 中的字符串和C语言中的有什么不同
SDS可以直接获取到字符串的长度,时间复杂度为O(1)
会有空间预分配,这样可以减少分配空间的次数,然后长度减少时,不会改变数据结构的内存,会将减少部位标志为可用。
C语言是以 /0结尾,Redis 以长度进行结尾,避免存储字符串出现问题
可以保存文本和二进制数据
推荐阅读:https://blog.csdn.net/cjqh_hao/article/details/89741720
1.8 Redis线程模型
Redis基于Reactor模式开发了网络事件处理器,这个处理器被称为文件事件处理器。它的组成结构为4部分:多个套接字、IO多路复用程序、文件事件分派器、事件处理器。因为文件事件分派器队列的消费是单线程的,所以 Redis 才叫单线程模型
推荐阅读:https://blog.csdn.net/m0_37524661/article/details/87086267
推荐阅读:https://blog.csdn.net/qq_14855971/article/details/118918980?spm=1001.2014.3001.5501
