Redis中文教程

半兽人 发表于: 2019-07-09   最后更新时间: 2021-11-28 13:25:46  
{{totalSubscript}} 订阅, 25,188 游览

Redis是个基于内存的数据结构的存储系统。

redis

Redis之父 Salvatore Sanfilippo,一名意大利程序员,大家更习惯称呼他 Antirez。Redis使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

Redis也被称为数据结构服务器,因为值(value)可以是字符串(String),哈希(Hash), 列表(list),集合(sets)有序集合(sorted sets)等类型。

简单说明什么是Redis

Redis对于工作过的人都非常清楚其作用,但对于初学者,可能还有些模糊。

Redis把你的数据存储在内存中,这样你直接从内存中读取数据了

众所周知,都知道内存比硬盘快,也比硬盘昂贵(现在越来越便宜啦)我们先看下面一组数据:

  1. 顺序访问:内存访问速度仅仅是硬盘访问速度的6~7倍(358.2M/53.2M=6.7)
  2. 随机访问:内存访问速度就要比硬盘访问速度快上10万倍以上(36.7M/316=113,924)

上面数据不做过多解释,想了解的搜索一大堆。简单来说,Redis主要用于解决高并发、共享问题。

举个例子:你访问一个网站,每次访问这个网站都会显示一段话“orchome.com是一个帮助架构师解决学习成本的网站,.....省略1000字.....”,这条记录是存储在mysql数据库中的,而这个网站每秒有1万人访问,那每秒需要访问1万次数据库,访问速度可想而知(mysql也有缓存机制,我们忽视)。这时,我们将这条记录存储到Redis中,那么,即使10万的并发,也没有问题。

我们说说共享问题,单点登录的例子,比如你有2个网站,你只想登录了A网站后,B网站就不用登录了。那么,这2个网站共同访问同一个redis,A网站登录之后,把登录信息存储上去,访问B网站的时候,B网站去Redis获取A网站记录的登录信息,如果有,就说明已经在A上面登录过了,就无需再次登录。

Redis 优势

  • 高性能 – Redis能读的速度是130000次/s,写的速度是100000次/s。

  • 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。

  • 原子性 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。

  • 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

Redis与其他key-value存储有什么不同?

Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。

Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。

更新于 2021-11-28

苏小汓 3年前

很强

查看redis更多相关的文章或提一个关于redis的问题,也可以与我们一起分享文章