在我们的日常开发中,经常会需要使用缓存。缓存的使用可以减少网络请求或者查询数据库的次数,有效提高访问速度。
下面针对面试中常见的redis知识点来展开交流,旨在让大家对redis的基本概念与原理有一定的了解与掌握。
(1)redis有了解吗?
答:redis(Remote Dictionary Server远程字典服务),是一款高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库。因为数据都在内存中,所以运行速度快。redis支持丰富的数据类型并且支持事务,事务中的所有命令会被序列化、按顺序执行,在执行的过程中不会被其他客户端发送来的命令打断。
redis相比memcached有哪些优势?(掌握)
memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富的数据类型。
redis的速度比memcached快很多,并且redis支持数据的持久化。
redis支持数据的备份,即master-slave模式的数据备份。
使用底层模型不同,它们之间底层实现方式 以及与客户端之间通信的应用协议不一样。redis自己构建了VM 管理机制。
value大小不同,redis最大可以达到512MB,而memcache只有1MB。
“redis都支持哪些数据类型?应用场景有哪些?”(掌握)
redis支持五种数据类型作为其Value,redis的Key都是字符串类型的。
string:redis 中字符串 value 最大可为512M。可以用来做一些计数功能的缓存(也是实际工作中最常见的)。
list:简单的字符串列表,按照插入顺序排序,可以添加一个元素到列表的头部(左边)或者尾部(右边),其底层实现是一个链表。可以实现一个简单消息队列功能,做基于redis的分页功能等。
set:是一个字符串类型的无序集合。可以用来进行全局去重等。
sorted set:是一个字符串类型的有序集合,给每一个元素一个固定的分数score来保持顺序。可以用来做排行榜应用或者进行范围查找等。
hash:键值对集合,是一个字符串类型的 Key和 Value 的映射表,也就是说其存储的Value是一个键值对(Key- Value)。可以用来存放一些具有特定结构的信息。
其实redis还支持三种特殊的数据类型,分别为BitMap、Geo和HyperLogLog。
一般情况下,可以认为redis的支持的数据类型有上述五种,其底层数据结构包括:简单动态字符串,链表,字典,跳表,整数集合以及压缩列表。
“redis的配置文件有了解吗?”
下载并且解压redis之后,在解压目录下有个配置文件 redis.windows.conf(大家可以自行查阅),在配置文件中对redis进行了分模块配置,常用的模块如下:
NETWORK:该模块可以配置一些redis服务