大厂和初创公司都在用!Redis好在哪?终于有人讲明白了

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: Redis从一个不为人熟知、只有少量应用的崭新数据库,逐渐变成了内存数据库领域的事实标准。时至今日,经过大量的实践应用,Redis简洁高效、安全稳定的特性已经深入人心。

云栖号资讯:【点击查看更多行业资讯
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!

导读:本文带你了解Redis,再推荐4本关于Redis的书。

Redis从一个不为人熟知、只有少量应用的崭新数据库,逐渐变成了内存数据库领域的事实标准。时至今日,经过大量的实践应用,Redis简洁高效、安全稳定的特性已经深入人心。

无论是国内还是国外,从五百强公司到小型初创公司都在使用Redis,很多云服务提供商还以Redis为基础构建了相应的缓存服务、消息队列服务以及内存存储服务,当你使用这些服务时,实际上就是在使用Redis。

Redis是一个主要由Salvatore Sanfilippo(Antirez)开发的开源内存数据结构存储器,经常用作数据库、缓存以及消息代理等。

Redis因其丰富的数据结构、极快的速度、齐全的功能而为人所知,它是目前内存数据库方面的事实标准,在互联网上有非常广泛的应用,微博、Twitter、GitHub、Stack Overf?low、知乎等国内外公司都大量地使用了Redis。

Redis之所以广受开发者欢迎,跟它自身拥有强大的功能以及简洁的设计不无关系。

Redis最重要的特点有以下几种(参见下图):

B6BB72B8_2941_4d2e_A3C5_FC6854D13AA2

  1. 结构丰富

Redis为用户提供了字符串、散列、列表、集合、有序集合、HyperLogLog、位图、流、地理坐标等一系列丰富的数据结构,每种数据结构都适用于解决特定的问题。

在有需要的时候,用户还可以通过事务、Lua脚本、模块等特性,扩展已有数据结构的功能,甚至从零实现自己专属的数据结构。通过这些数据结构和特性,Redis能够确保用户可以使用适合的工具去解决问题。

  1. 功能完备

在上述数据结构的基础上,Redis提供了很多非常实用的附加功能,比如自动过期、流水线、事务、数据持久化等,这些功能能够帮助用户将Redis应用在更多不同的场景中,或者为用户带来便利。

更重要的是,Redis不仅可以单机使用,还可以多机使用:通过Redis自带的复制、Sentinel和集群功能,用户可以将自己的数据库扩展至任意大小。

无论你运营的是一个小型的个人网站,还是一个为上千万消费者服务的热门站点,都可以在Redis中找到你想要的功能,并将其部署到你的服务器中。

  1. 速度飞快

Redis是一款内存数据库,它将所有数据存储在内存中。因为计算机访问内存的速度要远远高于访问硬盘的速度,所以与基于硬盘设计的传统数据库相比,Redis在数据的存取速度方面具有天然的优势。

但Redis并没有因此放弃在效率方面的追求,相反,Redis的开发者在实现各项数据结构和特性的时候都经过了大量考量,在底层选用了很多非常高效的数据结构和算法,以此来确保每个操作都可以在尽可能短的时间内完成,并且尽可能地节省内存。

  1. 用户友好

“虽然Redis提供了很多很棒的数据结构和特性,但如果它们使用起来非常困难的话,那么这一切就没有意义。”如果你对此有所担心的话,那么现在可以打消你的顾虑了!Redis API遵循的是UNIX“一次只做一件事,并把它做好”的设计哲学。

Redis的API虽然丰富,但它们大部分都非常简短,并且只需接受几个参数就可以完成用户指定的操作。更棒的是,Redis在官方网站(redis.io)上为每个API以及相关特性都提供了详尽的文档,并且客户端本身也可以在线查询这些文档。

当你遇到文档无法解决的问题时,还可以在Redis项目的GitHub页面:
github.com/antirez/redis

Google Group:
groups.google.com/forum/#!forum/redis-db

甚至作者的Twitter上提问:
twitter.com/antirez

  1. 支持广泛

正如之前所说,Redis已经在互联网公司得到广泛应用,许多开发者为不同的编程语言开发了相应的客户端(redis.io/clients),大多数编程语言的使用者都可以轻而易举地找到所需的客户端,然后直接开始使用Redis。

此外,包括亚马逊、谷歌、RedisLabs、阿里云和腾讯云在内的多个云服务提供商都提供了基于Redis或兼容Redis的服务,如果你不打算自己搭建Redis服务器,那么上述提供商可能是不错的选择。

【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/zhibo

立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK

原文发布时间:2020-05-07
本文作者: 数据叔
本文来自:“InfoQ”,了解相关信息可以关注“InfoQ

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
NoSQL 数据可视化 Java
一次Redis生产事故,公司损失百万
一、前因 公司有个核心项目redis的客户端一直是使用的jedis,后面技术负责人要求把jedis客户端替换成效能更高的lettuce客户端,同时使用spring框架自带的RedisTemplate类来操作redis。 然而世事难料,就是这么一个简单的需求却让老师傅翻了船。。。
|
运维 NoSQL 安全
一个致命的 Redis 命令,导致公司损失 400 万!!
最近安全事故濒发啊,前几天发生了《顺丰高级运维工程师的删库事件》,今天又看到了 PHP 工程师在线执行了 Redis 危险命令导致某公司损失 400 万。。
|
运维 NoSQL 安全
|
NoSQL 安全 数据库
一个致命的Redis命令,导致公司损失400万!!
最近安全事故濒发啊,前几天发生了“ 顺丰高级运维工程师的删库事件 ”,今天又看到了PHP工程师在线执行了Redis危险命令导致某公司损失400万.
1342 0
|
安全 NoSQL Java
一个致命的 Redis 命令,导致公司损失 400 万!!
最近安全事故濒发啊,前几天发生了《顺丰高级运维工程师的删库事件》,今天又看到了 PHP 工程师在线执行了 Redis 危险命令导致某公司损失 400 万。
1244 0
|
NoSQL 数据库 Redis
一个致命的 Redis 命令,导致公司损失 400 万!!
最近安全事故濒发啊,前几天发生了《顺丰高级运维工程师的删库事件》,今天又看到了 PHP 工程师在线执行了 Redis 危险命令导致某公司损失 400 万。。 什么样的 Redis 命令会有如此威力,造成如此大的损失? 具体消息如下: 据云头条报道,某公司技术部发生 2 起本年度 PO 级特大事故.
1614 0
|
1月前
|
存储 缓存 NoSQL
数据的存储--Redis缓存存储(一)
数据的存储--Redis缓存存储(一)
|
1月前
|
存储 缓存 NoSQL
数据的存储--Redis缓存存储(二)
数据的存储--Redis缓存存储(二)
数据的存储--Redis缓存存储(二)
|
1月前
|
消息中间件 缓存 NoSQL
Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。
【10月更文挑战第4天】Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。随着数据增长,有时需要将 Redis 数据导出以进行分析、备份或迁移。本文详细介绍几种导出方法:1)使用 Redis 命令与重定向;2)利用 Redis 的 RDB 和 AOF 持久化功能;3)借助第三方工具如 `redis-dump`。每种方法均附有示例代码,帮助你轻松完成数据导出任务。无论数据量大小,总有一款适合你。
68 6
|
1天前
|
存储 缓存 NoSQL
【赵渝强老师】基于Redis的旁路缓存架构
本文介绍了引入缓存后的系统架构,通过缓存可以提升访问性能、降低网络拥堵、减轻服务负载和增强可扩展性。文中提供了相关图片和视频讲解,并讨论了数据库读写分离、分库分表等方法来减轻数据库压力。同时,文章也指出了缓存可能带来的复杂度增加、成本提高和数据一致性问题。
【赵渝强老师】基于Redis的旁路缓存架构
下一篇
无影云桌面