📜  Redis面试问题

📅  最后修改于: 2020-12-02 01:29:10             🧑  作者: Mango

Redis面试问题

下面列出了Redis面试常见问题和解答。

1)什么是Redis?

Redis是一个开源的高级键值数据存储和缓存。它也被称为数据结构服务器,其键不仅包含字符串,而且还包含哈希,集合,列表和排序集合。

2)Redis是什么意思?

Redis代表远程字典服务器。

3)Redis与其他数据库有何不同?

Redis是一个NoSQL,开源,内存中数据结构存储。它遵循键值存储的原理。

它非常快速,持久,可移植,并支持多种语言,例如C,C++,C#,Clojure,Common Lisp,D,Dart,Erlang,Go,Haskell,Haxe,Io,Java,JavaScript(Node.js),Julia, Lua,Objective-C,Perl,PHP,Pure Data, Python,R,Racket,Ruby,Rust,Scala,Smalltalk和Tcl。

有关更多信息:单击此处

4)Redis用哪种语言编写?

Redis用ANSI C编写,主要用于缓存解决方案和会话管理。它为存储值创建唯一键。

5)Redis的用法是什么?

Redis是一个特殊的key-value存储数据库函数作为一个的NoSQL数据库或作为内存缓存存储服务存储在系统内存中的数据时提高性能。

6)如何与Redis相交?

安装服务器后,您可以运行redis安装提供的Redis客户端,也可以打开命令提示符并使用以下命令:

redis-cli

通过使用其中任何一个,您都可以与Redis相交。

7)哪些最受欢迎的公司使用Redis?

Twitter,Github,Stackoverflow等是使用Redis的最受欢迎的公司。

8)Redis的主要功能是什么?

以下是Redis的主要功能:

  • Redis的安装设置和管理非常简单。
  • Redis非常快。它每秒可以执行100000个查询。
  • Redis速度很快,因为数据在内存中以及存储在磁盘上都是持久性的。
  • Redis的速度非常快,因为它会将整个数据集加载到主内存中。
  • 用于不同数据类型的Redis操作是原子操作,因此可以安全地完成这些操作,即设置或增加键,从集合中添加或删除元素或增加计数器。
  • 它支持各种类型的数据结构,例如字符串,哈希,集合,列表,排序集合等。
  • Redis支持多种语言,例如C,C++,C#,Ruby, Python,Twisted Python,PHP,Erlang,Tcl,Perl,Lua,Java,Scala等。
  • 如果尚不支持您喜欢的语言,则可以编写自己的客户端库,因为该协议非常简单。
  • Redis支持简单的主从复制。
  • Redis是便携式的。

有关更多信息:单击此处

9)解释Redis的复制功能吗?

为了在大数据系统中归档高级别的可用性,复制非常重要。数据需要在n个位置复制。这遵循主从方法,其中主副本由主从维护,并复制到其他n个节点。

10)使用Redis有什么好处?

以下是Redis的一些重要优点的列表:

  • Redis非常快。
  • 它支持服务器端锁定。
  • 它具有丰富的客户端库。
  • 这是一个很好的柜台。
  • 它支持原子操作。

11)使用Redis的缺点/局限性是什么?

以下是Redis的缺点/局限性:

  • 它是单线程的。
  • 它对统一哈希的客户端支持有限。
  • 对于持久性来说,它有很大的开销。
  • 它没有被广泛部署。

12)Redis和RDBMS有什么区别?

Redis和RDBMS之间有很多区别:

  • Redis是NoSQL数据库,而RDBMS是SQL数据库。
  • Redis遵循键值结构,而RDBMS遵循表结构。
  • Redis非常快,而RDBMS比较慢。
  • Redis将所有数据集存储在主内存中,而RDBMS将其数据集存储在辅助内存中。
  • Redis通常用于存储较小且经常使用的文件,而RDBMS用于存储大型文件。
  • Redis仅对Linux,BSD,Mac OS X和Solaris提供官方支持。目前,它不提供对Windows的官方支持,而RDBMS提供了对两者的支持。

有关更多信息:单击此处

13)区分Memcached和Redis?

Memcached Redis
Memcached only does caching information. It provides some more functionalities like replication and persistence along with caching information.
Memcached supports the functionality of LRU (Least Recently Used) eviction of values. LRU is not supported by Redis.
In Memcached, when they overflow memory, the one you have not used recently (LRU- Least Recently Used) will get deleted. In Redis, there is a time set for each function, Three keys are maintained, the one, which is closest to expiry, will get deleted.
CAS (Check and Set) is supported by Memcached. CAS is not supported by Redis.
Array objects are needed to be serialized in order to get saved. We need to unserialize them for their retrieval. Redis has got stronger data structures; it can handle strings, binary safe strings, list of binary safe strings, sorted lists, etc.
Memcached has at most 250 bytes length. Redis has at most 2 GB key length.
It is Multi-threaded It is single threaded.

14)提到Redis的操作键。

  • TYPE键
  • TTL键
  • EXPIRE关键秒
  • EXPIREAT关键时间戳
  • EXISTS键
  • DEL键

15)Redis中使用哪些不同的数据类型?

Redis支持的数据类型主要有5种:

  • 弦乐
  • 散列
  • 清单
  • 套装
  • 排序集

有关更多信息:单击此处

16)Redis数据库中最流行的命令是什么?

有关更多信息:单击此处

17)我们都知道红军快,但也持久吗?

在Redis中,始终需要在耐用性和速度之间进行权衡。在系统故障的情况下,它可能会丢失未存储的数据。

18)如何提高Redis的耐用性?

  • 每当将新命令添加到附加日志文件时,每次都调用Fsysnc()。
  • 保持每秒调用Fsysnc()。尽管有1秒的数据丢失,但系统发生故障。

19)使用Redis时需要注意哪些事项?

  • 一致的方法选择,以便命名和前缀键。命名空间管理。
  • 设置关键字前缀注册表,该注册表可以将每个文档映射到其所有者应用程序。
  • 为我们保留在redis架构中的每个类设计,实现和测试Garbage收集机制。
  • 在对应用程序进行大量投资之前,请维护一个分片库。

20)如何在.Net应用程序中使用Redis?

要在.Net应用程序中使用Redis,请按照下列步骤操作:

  • 首先,下载Redis服务器。
  • 安装Redis服务器。
  • 下载Redis客户端。
  • 将配置设置为Web.config文件。
  • 使用Redis客户端类。