1、什么是Redis
Redis 是一个高性能的key-value缓存数据库,默认是存储在内存中的。它共有16个数据库
2、Redis有哪些数据类型
数据类型 | 可存储的值 | 应用场景 |
---|---|---|
String | 字符串、整数或者浮点数 | 做简单的键值对缓存 |
List | 列表 | 存储一些列表型的数据结构 |
Set | 无序集合 | 交集、并集、差集的操作 |
Hash | 包含键值对的无序散列表 | 结构化的数据,比如一个对象 |
Zset | 有序集合 | 去重但可以排序,如获取排名前几名的用户 |
3、Redis有哪些优缺点?
优点:
- 读写速度快,因为数据存在内存中,类似于 HashMap,HashMap 的优势就是查找和操作的时间复杂度都是 O1)
- 支持丰富数据类型,支持 string,list,set,Zset,hash 等
- 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行
- 丰富的特性:可用于缓存,消息,按 key 设置过期时间,过期后将会自动删除
缺点:
-
数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。
-
Redis 不具备自动容错和恢复功能,主机从机的宕机都会导致前端部分读写请求失败,需要等待机器重启或者手动切换前端的IP才能恢复。
-
主机宕机,宕机前有部分数据未能及时同步到从机,切换IP后还会引入数据不一致的问题,降低了系统的可用性。
-
Redis 较难支持在线扩容,在集群容量达到上限时在线扩容会变得很复杂。为避免这一问题,运维人员在系统上线时必须确保有足够的空间,这对资源造成了很大的浪费。
4、什么是Redis持久化?
持久化就是把内存的数据写到磁盘中去,防止服务宕机了内存数据丢失。
Redis 提供两种持久化机制 RDB(默认) 和 AOF 机制。
RDB是通过保存数据库中的键值对来记录数据库的状态。而另一种持久化方式 AOF 则是通过保存Redis服务器所执行的写命令来记录数据库状态。
5、RDB 的优势和劣势
RDB是Redis默认的持久化方式。按照一定的时间将内存的数据以快照的形式保存到硬盘中,对应产生的数据文件为dump.rdb。通过配置文件中的save参数来定义快照的周期。
(1)优势
RDB是一个非常紧凑(compact)的文件,它保存了redis 在某个时间点上的数据集。这种文件非常适合用于进行备份和灾难恢复。
生成RDB文件的时候,redis主进程会f