Redis-初探-3|学习笔记

简介: 快速学习 Redis-初探-3

开发者学堂课程【Redis 数据库入门Redis-初探-3】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/15/detail/41


Redis-初探-3


内容介绍:

一、Redis 的特点

二、Redis 的改进


一、Redis的特点

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

刚开始

现在

只支持列表结构

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

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

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

少有人知的开源项目

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

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

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

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

Redis的特点有三个:

1.独特的键值对模型

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

SQL——数据库表格

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

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

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

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

2.丰富的数据库结构

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

image.png

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

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

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

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

image.png

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

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

image.png

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 进行计数、缓存、消息分发和任务调度

相关文章
|
2月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
504 5
|
存储 NoSQL Redis
Redis系列学习文章分享---第十六篇(Redis原理1篇--Redis数据结构-动态字符串,insert,Dict,ZipList,QuickList,SkipList,RedisObject)
Redis系列学习文章分享---第十六篇(Redis原理1篇--Redis数据结构-动态字符串,insert,Dict,ZipList,QuickList,SkipList,RedisObject)
189 1
|
NoSQL Java Redis
Redis系列学习文章分享---第十八篇(Redis原理篇--网络模型,通讯协议,内存回收)
Redis系列学习文章分享---第十八篇(Redis原理篇--网络模型,通讯协议,内存回收)
708 0
|
存储 消息中间件 缓存
Redis系列学习文章分享---第十七篇(Redis原理篇--数据结构,网络模型)
Redis系列学习文章分享---第十七篇(Redis原理篇--数据结构,网络模型)
210 0
|
存储 NoSQL 算法
Redis系列学习文章分享---第十篇(Redis快速入门之附近商铺+用户签到+UV统计)
Redis系列学习文章分享---第十篇(Redis快速入门之附近商铺+用户签到+UV统计)
160 0
|
存储 NoSQL Redis
Redis系列学习文章分享---第九篇(Redis快速入门之好友关注--关注和取关 -共同关注 -Feed流实现方案分析 -推送到粉丝收件箱 -滚动分页查询)
Redis系列学习文章分享---第九篇(Redis快速入门之好友关注--关注和取关 -共同关注 -Feed流实现方案分析 -推送到粉丝收件箱 -滚动分页查询)
185 0
|
消息中间件 负载均衡 NoSQL
Redis系列学习文章分享---第七篇(Redis快速入门之消息队列--List实现消息队列 Pubsub实现消息队列 stream的单消费模式 stream的消费者组模式 基于stream消息队列)
Redis系列学习文章分享---第七篇(Redis快速入门之消息队列--List实现消息队列 Pubsub实现消息队列 stream的单消费模式 stream的消费者组模式 基于stream消息队列)
312 0
|
NoSQL 数据可视化 Linux
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
本文介绍了Redis的两个可视化管理工具:付费的Redis Desktop Manager和免费的Another Redis DeskTop Manager,包括它们的下载、安装和使用方法,以及在使用Another Redis DeskTop Manager连接Redis时可能遇到的问题和解决方案。
1794 1
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
|
NoSQL Linux Redis
Docker学习二(Centos):Docker安装并运行redis(成功运行)
这篇文章介绍了在CentOS系统上使用Docker安装并运行Redis数据库的详细步骤,包括拉取Redis镜像、创建挂载目录、下载配置文件、修改配置以及使用Docker命令运行Redis容器,并检查运行状态和使用Navicat连接Redis。
1425 3
|
存储 Prometheus NoSQL
大数据-44 Redis 慢查询日志 监视器 慢查询测试学习
大数据-44 Redis 慢查询日志 监视器 慢查询测试学习
216 3