阿里云
为了无法计算的价值
打开APP
阿里云APP内打开
学习中心> Redis数据库入门> 正文

Redis数据库入门

29课时 |
1268人已学 |
免费
课程介绍

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 Redis 是一个高性能的key-value数据库。Redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。

相关的阿里云产品:云数据库 Redis 版 云数据库Redis版(ApsaraDB for Redis)是兼容开源Redis协议标准、提供内存加硬盘的混合存储方式的数据库服务,基于高可靠双机热备架构及可平滑扩展的集群架构,满足高读写性能场景及弹性变配的业务需求。 了解产品详情: https://www.aliyun.com/product/kvstore

Redis-初探-3

 

内容介绍:

一、Redis的特点

二、Redis的改进

 

一、Redis的特点

经过五年时间的演变,Redis发生了一些变化:

刚开始

现在

只支持列表结构

支持字符串、列表、数列等六种结构,以及丰富的附加功能

只能单机运行,没有内置的方法可以方便地将数据库分布到多台机器上

支持多机运行(包括复制、自动故障转移以及分布式数据库)

少有人知的开源项目

广为人知并广泛使用在很多大型网站的热门开源项目

接受捐款支持,antirez自己无偿开发

Pivotal公司出资支持开发,并且有非常多的开发者通过和论坛为这个项目添砖加瓦

 

Pivotal是一家EMC和VMware合资的一家公司。

Redis的特点有三个:

1.独特的键值对模型

我们知道很多数据库只能处理一种数据结构。

SQL——数据库表格

Memcached——键值对数据库,键值都是字符串。

文档数据库——由JSON/BSON组成的文档

当然不是他们这些数据库不好,而是一旦数据库提供的数据结构并不适合去做某件事的话,程序写起来就会非常的麻烦和不自然。

Redis虽然也是键值对数据库,但是和Memcached不同的是,Redus的值不仅是字符串,它还可以是其他五种数据结构中的任意一种。

2.丰富的数据库结构

通过选用不同的数据结构,用户可以使用Redis解决各式各样的问题。Redis是内存储存数据库,所以它的读取会非常快。

使用Redis你碰到一个问题,你首先会想的是选择哪种数据结构,把哪些功能问题解决掉,有了多样的数据结构,方便你解决问题。

数据库有两种,一种硬盘数据库,一种内存数据库。

硬盘是把数据直接储存在硬盘,索引直接放在内存里,直接根据索引查询,找硬盘所在的位置读取值。典型的是SQL数据库。

在内存里面就储存一下索引,当硬盘数据库想访问硬盘的值时,他先在内存里面找到索引,然后再找值,问题是什么,在读取和写入硬盘的时候,如果读写比较多的时候,它会把硬盘IO堵死。

 

 

 

至于内存数据库,它会直接把值放在内存里面,内存数据库就直接把值取到。

读写数据的时候不会受到硬盘IO速度的限制,所以速度很快。

 

 

3.附加功能

持久化功能。将数据存储到内存里面的数据保存到硬盘里面,保证数据安全,方便进行数据备份和恢复。

发布于订阅功能。将消息同时发给多个客户端,用于构建广播系统。

过期键功能。为未见设置一个过期时间,让它在指定的时间之后自动被删除。

事务功能。原子的执行多个操作,并提供乐观锁的功能,保证处理数据时的安全性。

Lua脚本功能。在服务器端原子执行多个操作,完成复杂的功能,并减少客户端与服务器之间通信往返次数。

复制。为指定的radis服务器创建一个或多个复制品,用于提升数据安全性,并分担读请求的负载。

Sentinel。监控服务器的状态,并在服务器发生故障时进行自动故障转移。

集群。创建分布式数据库,每个服务器分别执行一部分写操作和读操作。

 

二、Redis的改进

2.6为很多命令添加了多参数支持

2.8添加了数据库通知功能

3.0推出了稳定集群

twitter使用Redis来储存用户时间线,user timeline

StackOverflow使用Redis来进行缓存和消息分发

Pinterest使用Redis来构建follow model(谁关注了谁,谁被关注了)和interest(还有用户可能可能对哪些用户感兴趣)

Flicker使用Redis来构建队形

Github使用Redis作为持久化的键值对数据库

新浪使用Redis,集群规模是18个TB,使用Redis来实现计数器、反向索引、排行榜、消息队列、并存储用户关系

知乎使用Redis进行计数、缓存、消息分发和任务调度

 

我的学习进度
请登录后查看您的学习进度!
立即登录
本课程相关云产品