转载

为什么要选择使用 Redis?

之前空非易博客谈过Redis 的诞生,世界上有无数种数据库,我们为什么要选择使用 Redis 呢?它有什么好处和优点?本文将讨论这个话题。

独特的键值对模型

很多数据库只能处理一种数据结构:

  • SQL 数据库 —— 表格
  • Memcached —— 键值对,键和值都是字符串
  • 文档数据库(CouchDB、MongoDB)—— 由 JSON/BSON 组成的文档

而一旦数据提供的数据结构不适合去做某件事的话,程序写起来就会非常地麻烦和不自然。

为什么要选择使用 Redis?

Redis 也是键值对数据库,但和 Memcached 不同的是,Redis 的值不仅可以是字符串,它还可以是其他五种数据结构中的任意一种。通过选用不同的数据结构(如上图),用户可以使用 Redis 解决各式各样的问题。随着 Redis 的发展,将来它将支持更多类型的数据结构,成为更大的平台。

内存储存,速度极快

按存储方式,数据库的工作模式,分为硬盘数据库和内存数据库。Redis 将数据储存在内存里面,读写数据的时候都不会受到硬盘 I/O 速度的限制,所以速度极快。

为什么要选择使用 Redis?

为什么要选择使用 Redis?

丰富的附加功能

  • 持久化:将储存在内存里面的数据保存到硬盘里面,保障数据安全,方便进行数据备份和恢复。
  • 发布与订阅:将消息同时分发给多个客户端,可用于构建广播系统。
  • 过期键:为键设置一个过期时间,让它在指定的时间之后自动被删除。
  • 事务:原子地执行多个操作,并提供乐观锁功能,保证处理数据时的安全性。
  • 脚本:在服务器端原子地执行多个操作,完成复杂的功能,并减少客户端与服务器之间的的通信往返次数。
  • 复制:为指定的 Redis 服务器创建一个或多个复制品,用于提升数据安全性,并分担读请求的负担。
  • Sentinel:即 Redis 哨兵,监控 Redis 服务器的状态,并在服务器发生故障时,进行自动故障转移。
  • 集群:创建分布式数据库,每个服务器分别执行一个部分写操作和读操作。

完善的文档

Redis 具有完善、易读的 文档 ,加上 Redis 本身功能的简单性,就算新手也可以轻松上手。

良好的支持

Redis 作者非常勤奋,在每个版本都会不断地增加有用的新功能。Bug 一旦出现就会很快被修复,齐全的测试套件以及稳扎稳打的开发策略,使得 Redis 非常健壮可靠。

有问题时,在 Redis 的论坛上发贴,或者到 Redis 的Github 页面发 issue,又或者直接和作者 Antirez 联系,通常都可以很快得到回应。

Pivotal 公司雇用 Antirez 全力开发 Redis,无后顾之忧,这个公司也提供专门的 Redis 开发和维护咨询服务。阿里云、百度云、Amazon、RedisLab 等公司都提供了基于 Redis 的应用服务。

广泛的使用

  • Twitter 使用 Redis 储存用户时间线。
  • StackOverflow 使用Redis 进行缓存和消息分发。
  • Pinterest 使用 Redis 构建关注模型(follow model)和兴趣图谱(interest graph)。
  • Flickr 使用 Redis 构建队列。
  • Github 使用 Redis 作为持久化的键值对数据库,并使用其构建消息队列。
  • 新浪微博使用 Redis 实现计数器、反向索引、排行榜、消息队列和存储用户关系。
  • 知乎使用 Redis 进行计数、缓存、消息分发和任务调度

关于 Redis 的特色介绍完毕。

来源:空非易,QQ:1437 5907

原文  http://pengzhiyong.com/archives/Story-why-choose-to-use-Redis.html
正文到此结束
Loading...