面试题之redis篇

什么是redis?

Redis 是一个开源(BSD 许可)、基于内存、支持多种数据结构的存储系统,可以作为数据库、缓存和消息中间件。它支持的数据结构有字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)等,除此之外还支持 bitmaps、hyperloglogs 和地理空间( geospatial )索引半径查询等功能

Redis的数据类型有哪些?

string、hash、list、set、sorted set

Redis的数据同步机制?

Redis 支持主从同步、从从同步。如果是第一次进行主从同步,主节点需要使用 bgsave 命令,再将后续修改操作记录到内存的缓冲区,等 RDB 文件全部同步到复制节点,复制节点接受完成后将 RDB 镜像记载到内存中。等加载完成后,复制节点通知主节点将复制期间修改的操作记录同步到复制节点,即可完成同步过程。

Redis如何设置密码?

永久生效:修改配置文件,需要重启 Redis。在 redis.conf 中可以找到 requirepass 参数,设置 Redis 的访问密码。配置方法为:requirepass 访问密码

临时生效:使用命令设置,不需要重启 Redis。使用命令设置的方法为:config set requirepass 访问密码,redis重启后,密码失效

Redis的一个字符串类型的值能存储最大容量是多少?

字符串类型是最基本的数据类型,是二进制安全的字符串,最大 512M。

Redis key的过期时间和永久有效分别怎么设置?

可以使用 EXPIRE 和 PERSIST 命令。对一个已经带有生存时间的 key 执行 EXPIRE 命令,新指定的生存时间会取代旧的生存时间。PERSIST 命令可以移除给定 key 的生存时间,将这个 key 从带生存时间转换成持久的。

如何设置 Redis 的最大连接数?

redis-server -maxclients 100000(连接数);

什么是bigkey,怎么查找redis的bigkey?

bigkey 是指键值占用内存空间非常大的key,查找bigkey可以用下面命令

redis-cli –bigkeys

什么是缓存穿透?怎么解决?

大量的请求瞬时涌入系统,而这个数据在 Redis 中不存在,所有的请求都落到了数据库上把数据库打死。造成这种情况的原因有系统设计不合理、缓存数据更新不及时,或爬虫等恶意攻击。

解决办法:如果从数据库查询的结果为空,依然把这个结果进行缓存,那么当用 key 获取数据时,即使数据不存在,Redis 也可以直接返回结果,避免多次访问数据库

什么是缓存雪崩?怎么解决?

缓存雪崩是指当大量缓存失效时,大量的请求访问直接请求数据库,导致数据库服务器无法抗住请求或挂掉的情况。这时网站常常会出现 502 错误,导致网站不可用问题。

解决办法:

  1. 合理规划缓存的失效时间,可以给缓存时间加一个随机数,防止统一时间过期。
  2. 对数据库进行过载保护或应用层限流,这种情况下一般是在网站处于大流量、高并发时,服务器整体不能承受时,可以采用的一种限流保护措施
  3. 最后还可以考虑多级缓存设计,实现缓存的高可用。

什么是redis的哨兵模式?

Redis 的哨兵作用是管理多个 Redis 服务器,提供了监控、提醒以及自动的故障转移的功能。哨兵可以保证当主服务器挂了后,可以从从服务器选择一台当主服务器,把别的从服务器转移到读新的主机。

Redis持久化机制有哪些?

Redis 主要支持的持久化机制为 RDB(快照)和 AOF(追加文件)。

  • RDB 持久化是在指定时间间隔内保存数据快照到硬盘中。但 RDB 的持久化方式没有办法实现实时性的持久化。当应用使用 RDB 持久化后,如果 Redis 系统发生崩溃,那么使用 RDB 恢复数据时,恢复后的数据中,存在丢失最近一次生成快照之后更改的所有数据。所以 RDB 持久化不适用于丢失一部分数据也会对应用造成很大影响的备份中。

  • AOF 持久化是把命令追加到操作日志的尾部,然后保存所有历史操作。AOF 主要是解决数据持久化的实时性。Redis 服务器默认开启 RDB,关闭 AOF;要开启 AOF,需要在配置文件中配置:appendonly yes。AOF 持久化相对于 RDB 持久化的优点在于可以实时的对 Redis 缓存进行写入记录,保证快速恢复缓存时的完整性。

Redis集群架构模式有哪几种?

Redis 集群架构是支持单节点单机模式的,也支持一主多从的主从结构,还支持带有哨兵的集群部署模式

© vishon all right reserved,powered by GitbookUpdated at 2022-03-24 14:26:59

results matching ""

    No results matching ""