Redis是什么?

Redis是什么?

Redis(Remote Dictionary Server ),英文直译为远程字典服务,我们从4个方面来剖析:

  1. 支持网络
  2. 基于内存亦可持久化的日志型数据库
  3. Key Value数据库
  4. 提供多种语言的API

以下我们来一一讲解。

支持网络,这点好理解,可以单独部署在网络上,实现应用程序对它的操作访问。

Redis是什么?
支持网络

基于内存亦可持久化的日志型数据库,这点就是说Redis的读写是基于内存的,这也是它的性能高的一个原因,但我们都知道,内存中的数据会随着服务器的重启而丢失,

Redis是什么?
什么是Redis-内存
Redis是什么?
什么是Redis-内存重启

而怎么样保证数据不丢失呢,对,就是持久化到磁盘上,以便 Redis 重启时能够从磁盘中恢复原有的数据,这个过程就叫做Redis持久化,这也是概念中所说的可基于内存亦可持久化的日志型数据库。

Redis是什么?
什么是Redis-写入到磁盘

这里深入讲解下持久化RDB和AOF。

RDB方式的持久化是通过快照(snapshotting)完成的,当符合一定条件时,Redis会自动将内存中所有的数据生成一份副本并存储在硬盘中,这个过程被称为“快照”。“快照”,就类似于拍照,摁下快门那一刻,所定格的照片,就称为“快照”。但是RDB方式实现持久化,一旦Redis异常退出,就会丢失最后一次快照之后更改的所有数据。为了降低因进程中止导致的数据丢失风险,可以使用AOF方式实现数据持久化。AOF持久化是以日志追加的形式记录服务器所处理的每一个新增、删除操作,查询操作不记录,以文本的方式记录,文件中可以看到详细的操作记录。

简单对比下RDB与AOF的优缺点。

RDB的优缺点:

优点:RDB持久化文件,速度比较快,而且存储的是一个二进制文件,传输起来很方便。

缺点:RDB无法保证数据的绝对安全,有时候就是1s也会有很大的数据丢失。

AOF的优缺点:

优点:AOF相对RDB更加安全,一般不会有数据的丢失或者很少,官方推荐同时开启AOF和RDB。

缺点:AOF持久化的速度,相对于RDB较慢,存储的是一个文本文件,到了后期文件会比较大,传输困难。

接下来我们来继续理解Key Value数据库,常见的key value数据库有memcache、redis;而在Java语言里边有一个常用的数据类型Map也是典型的key value,简而言之就是一个key,对应着一个值;它的查询复杂度为O(1);这里也可以和哈希关联起来,若关键字为key,则其值存放在f(key)的存储位置上。由此,不需比较便可直接取得所查记录。称这个对应关系f为哈希函数,按这个思想建立的表为哈希表

Redis是什么?
什么是Redis-key-value

最后一点,提供多种语言的API,就是官方提供了很编程语言的驱动,能够方便的各种应用语言通过驱动来操作Redis API。

Redis是什么?
什么是Redis-驱动

我是连边,简化你的求知路径。

欢迎关注连边,不错过精彩文章。

原文始发于微信公众号(连边):Redis是什么?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/61869.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!