【Redis】认识Redis

Redis诞生于2009年全称是 Remote Dictionary Server (远程词典服务器),是一个基于内存的键值型NoSQL数据库。

为什么是词典服务呢?之前也介绍过,redis是一个键值型的数据库,我们根据Key找value,这不就跟词典很像。

下图就是开发redis的作者,它的名字比较长,也比较绕口,因此在网络上也被成为 ANTIREZ 这个名字。

最早的时候他跟他的小伙伴一起开发了一个网站,这个网站刚开始用户量还比较少,所以基于MySQL也能满足他的需求。

但是后来随着用户量的增长,有时候并发高的时候,MySQL根本就承担不住了,此时它就希望有这么一个库:吞吐能力很强,并发能力很高,并且还有一些特殊的业务需求需要去满足,于是基于这个目的他就开发了redis。

image-20240522132609491

redis服务器开发出来后,具有了一些特征

  • 键值(key-value)型,操作起来简单。value支持多种不同数据结构(字符串、集合等),功能丰富

  • 单线程,因此线程是安全的,每个命令具备原子性,安全的,不会出现一个命令执行了一半,其他命令就突然插进来的情况

    Redis6.0的多线程仅仅是在网络请求的处理上,而核心命令的执行依旧是单线程的。

  • 低延迟,速度快

    它明明是一个单线程,性能却这么好呢?

    1. 基于内存,内存的读写速度相对于磁盘来讲非常的高,高出了很多很多倍。
    2. 它尽管单线程,但是它却基于了 IO多路复用 的方式,大大的提高了整个服务的吞吐能力
    3. 良好的编码。redis是基于C语言编写的,并且开源在网络上,那么这个redis整体编码,无论从编码的风格上、还是从代码的习惯上来讲,可以说得到了业界的公认好评。

    因此基于这三个原因,redis尽管单线程,但是性能却非常优异。

    最重要的是内存!因为无论是IO多路复用,还是编码也好,这样的一些功能MySQL也能满足。

  • 支持数据持久化,内存查询性能是高,但是它存在数据不安全的情况,即一旦断电,内存数据就消失了,所以为了解决这个问题,redis的作者就给它加了持久化的功能,它会定期将数据从内存持久化到词频,从而确保数据的安全性

  • 支持主从集群.分片集群(把数据拆分)

    主从集群MySQL也有,指的是:从节点可以去备份主节点的数据,也是一种安全性的考虑,这样依赖一旦有节点宕机,数据在其他从节点上也能找到。同时主从可以做读写分离,从而大大的提高了查询读写的效率。

    分片集群:做数据的拆分,即将数据拆成n份存到不同结点上去,这样一来我用很多台机器一起来存,存储的上限就提高了,即水平的一种扩展。

  • 支持多语言客户端。Java、python、C等各种各样的语言基本上都能操作reids。

功能丰富、性能还好、还支持数据持久化、安全,还能做各种集群,轻易的去做水平扩展,并且任何语言都能用,所以它不火谁火?

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值