文档章节

Redis 学习路线

JackFace
 JackFace
发布于 2016/06/17 17:29
字数 1389
阅读 88
收藏 19
点赞 0
评论 0

学习和使用 Redis 一般可以分为以下四个阶段:

  1. 初学者入门
  2. 进阶实战
  3. 理解原理
  4. 贡献和开发

本文接下来将在四个小节里面分别对这四个阶段进行介绍。

初学者入门

如果你只是对 Redis 感兴趣, 又或者听别人说过一些关于 Redis 的介绍, 但是却并没有实际使用过 Redis , 那么你就处于 Redis 初学者这一阶段。

Redis 初学者可以考虑使用《Redis入门指南(第2版)》作为教程, 并辅以《Redis命令参考》文档作为参考。

《Redis入门指南》是 ioredis 、 medis 等项目的作者 luin 的作品, 该书深入浅出地介绍了 Redis 的主要特性、基本命令以及使用方法, 整本书的篇幅不多, 行文简单, 很容易就能够看完。 初学者可以通过阅读这本书知道 Redis 是什么以及它能做什么。

因为篇幅所限, 《Redis入门指南》并没有对 Redis 的各个命令展开进行介绍, 因此如果读者想要进一步了解某个命令的详细用法和相关信息, 那么可以通过《Redis命令参考》进行查询。

在阅读了《Redis入门指南》和《Redis命令参考》之后, 初学者应该对 Redis 的功能、作用以及使用方法有了基本的了解, 并能够使用 Redis 去解决一些简单的问题。 在此之后, 初学者就可以向下一阶段进发, 考虑如何将 Redis 应用到实际的工作当中。

扩展阅读

除了《Redis入门指南》和《Redis命令参考》之外, 以下列出的一些资料也值得 Redis 初学者去观看和阅读:

进阶实战

学习 Redis 的第二个阶段是进阶实战阶段, 处于这一阶段的 Redis 学习者应该对 Redis 有了基本的理解, 熟悉 Redis 各个命令以及各项特性的基本用法, 但还是不太清楚应该如何使用 Redis 去解决自己在工作上遇到的问题。

为此, 处于这一阶段的 Redis 学习者可以通过阅读《Redis实战》一书以及其他 Redis 用户分享的心得来提高自己使用 Redis 的能力。

《Redis实战》一书是 Redis Group 讨论组中的热门发言者 Josiah Carlson 所作, 该书通过实际的例子, 展示了使用 Redis 构建多种不同的应用程序的方法。 处于进阶阶段的 Redis 学习者可以通过阅读该书来学习如何使用 Redis 去构建实际的应用, 然后举一反三, 把书中介绍的程序和方法应用到自己遇到的问题上。

除了《Redis实战》之外, 国内外的很多公司(比如twitter、新浪微博等)都在网上公布了他们使用 Redis 的方法、心得和经验, Redis 学习者可以通过这些分享中了解到更多使用 Redis 的例子, 以及这些公司在使用 Redis 过程中遇到的问题、困难和陷阱, 从而学会如何在实际中更好地使用和管理 Redis 。

实践使用 Redis 的另一个难点是如何在大规模的数据环境中使用 Redis , 要解决这个问题就需要对 Redis 进行扩展: 目前扩展 Redis 常见的技术包括 Redis 自带的复制(replication)SentinelCluster 功能, 以及 twemproxycodis 等项目, Redis 用户可以通过这些技术的相关文档来学习如何使用这些技术。

理解原理

在弄懂了如何在实际中使用 Redis 之后, 我们要考虑的就是如何解决 Redis 在使用过程中引发的问题; 如何优化 Redis 的性能; 如何对 Redis 进行二次开发, 使得它可以符合自己的某些要求; 又或者准备去开发一个自家公司特有的类 Redis 数据库。

为了达到这些目的, 我们必须对 Redis 的运作原理和内部结构有所了解。 要做到这一点, 我们必须深入地研读 Redis 的源码:https://github.com/antirez/redis

除了 Redis 源码之外, 一个比较好的学习 Redis 内部原理的资料就是《Redis设计与实现》一书, 并且该书也附带了一个带有注释的 Redis 源码项目。 通过同时阅读书本和带注释的源代码, 读者能够快速地了解到 Redis 的内部构造, 以及各项主要功能的实现原理。

贡献和开发

在了解了 Redis 的原理之后, 我们可以考虑向 Redis 项目贡献代码, 又或者开发自己的类 Redis 数据库。

除了以上两点之外, 我们还可以考虑通过 Redis 最新的可载入模块系统(loadable module system), 以编写模块的方式来为 Redis 添加新功能: http://antirez.com/news/106

结语

好的, 关于 Redis 学习资料的介绍就到此结束, 希望这些资料会对正在学习和使用 Redis 的朋友们带来帮助。

利益申明:本文作者是《Redis命令参考》和《Redis实战》的译者,《Redis设计与实现》的作者。

黄健宏(huangz)

2016.5.24

版权声明

本文转载自:http://blog.huangz.me/diary/2016/how-to-learn-redis.html?hmsr=toutiao.io&utm_medium=toutiao.io&ut...

共有 人打赏支持
JackFace
粉丝 17
博文 49
码字总数 47020
作品 0
库尔勒
程序员
车江毅/DistributedCache

##分支说明## 该分支是基于BSF的基础上开发的分支。 修改内容 1)sdk以插件的形式扩展自BSF。 2)项目命名空间从Dyd.Base.DistributedCache修改为DistributedCache 3) 打包安装包,可以直接被...

车江毅 ⋅ 2015/12/31 ⋅ 0

Redis 开源文档《Redis设计与实现》

Redis是运用比较广泛的NoSQL产品之一,目前的稳定版本是2.6.10,包括Github、Instagram、Blizzard、新浪微博等都在产品中大量使用了Redis。其代码基于BSD协议开源,整个项目代码量只有2万多行...

三桂sg ⋅ 2013/03/14 ⋅ 21

PHP开发程序员的学习路线

兄弟连PHP培训,简单为大家梳理了每个阶段PHP程序员的技术要求,来帮助很多PHP程序做对照设定学习成长目标。 第一阶段:基础阶段(基础PHP程序员) 重点:把LNMP搞熟练(核心是安装配置基本操...

xdl刘涛 ⋅ 2016/08/11 ⋅ 0

车江毅/BusinessMQ

##分支说明## 该分支是基于BSF的基础上开发的分支。 修改内容 1)sdk以插件的形式扩展自BSF。 2)项目命名空间从Dyd.BaseService.BusinessMQ修改为BusinessMQ 3) 打包安装包,可以直接被第三...

车江毅 ⋅ 2015/10/12 ⋅ 0

后端技术栈

Nginx 工作原理和优化、漏洞(下) Nginx 工作原理和优化、漏洞(下) Mysql查询性能优化的心得 前言:之前实习时候做过一阵子的查询优化,那段时间结合阅读《高性能mysql》,有些心得体会,...

掘金官方 ⋅ 2017/12/06 ⋅ 0

车江毅/TaskManager

##分支说明## 该分支是基于BSF的基础上开发的分支。 修改内容 1)sdk以插件的形式扩展自BSF。 2)项目命名空间从Dyd.BaseService.TaskManager修改为TaskManager 3) 打包安装包,可以直接被第...

车江毅 ⋅ 2015/06/26 ⋅ 0

菜鸟成长系列-概述

前言 作为渣硕一枚,毕业时一线互联网公司招聘基本没有参与过,等回过神准备参加,春招都快结束了【17年毕业】;跌跌撞撞面了几家公司,虽然被虐,但是基本上都给了Offer,几番比较之后到了苏...

glmapper ⋅ 2017/11/05 ⋅ 0

大数据学习路线(自己制定的,从零开始)

大数据已经火了很久了,一直想了解它学习它结果没时间,过年后终于有时间了,了解了一些资料,结合我自己的情况,初步整理了一个学习路线,有问题的希望大神指点。 学习路线 Linux(shell,高并...

TurkeyMiami ⋅ 2017/11/15 ⋅ 0

hadoop生态圈的详解

学习和使用hadoop有一年了,这里主要分享一下对hadoop整体上的理解,分门别类的介绍一下相关组件,最后提供了建议的学习路线,希望对hadoop的初学者有参考作用。 1. Hadoop核心件组有哪些? 广...

cpaqyx ⋅ 2017/06/25 ⋅ 0

收下这份北京沙龙PPT,学好2018开源与架构第一课!

新年伊始,万象更新。在互联网+新业态持续推进的新一年,企业想要冲破成本高昂、运维繁琐的传统IT架构的束缚,需要勇气,更需要方法。为此,DBAplus社群举办了本年度首场线下沙龙,带大家以正...

DBAplus社群 ⋅ 01/15 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

idea 整合 vue 启动

刚学习Vue 搭建了一个项目 只能命令启动 Idea里面不会启动 尝试了一下修改启动的配置 如下: 1.首先你要保证你的package.json没有修改过 具体原因没有看 因为我改了这个name的值 就没办法启动...

事儿爹 ⋅ 26分钟前 ⋅ 0

数据仓库技术概述(一看就是架构师写的,对我极其有用)

ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、交互转换(transform)、加载(load)至目的端的过程。ETL一词较常用在数据仓库,但其对象并不限于...

gulf ⋅ 28分钟前 ⋅ 0

redis在windows环境的后台运行方法

在后台运行,首先需要安装redis服务,命令为 redis-server.exe --service-install redis.windows.conf --loglevel verbose 启动,命令为 redis-server --service-start 停止,命令为 redis-...

程序羊 ⋅ 30分钟前 ⋅ 0

比特币现金开发者提出新的交易订单规则

本周,四位比特币现金的四位开发者和研究员:Joannes Vermorel(Lokad),AmaurySéchet(比特币ABC),Shammah Chancellor(比特币ABC)和Tomas van der Wansem(Bitcrust)共同发表了一篇关...

lpy411 ⋅ 33分钟前 ⋅ 0

vue获取input输入框的数据

用惯了jQuery,突然使用vue感觉很不习惯,有很多不同的地方,感觉是两个不同的思想来写前端的代码。jQuery是使用选择器($)选取DOM对象,对其进行赋值、取值、事件绑定等操作。而Vue则是通过...

王子城 ⋅ 35分钟前 ⋅ 0

竟然这就是面向对象的游戏设计?!

从程序角度考虑,许多 JavaScript 都基于循环和大量的 if/else 语句。在本文中,我们可了解一种更聪明的做法 — 在 JavaScript 游戏中使用面向对象来设计。本文将概述原型继承和使用 JavaSc...

柳猫 ⋅ 40分钟前 ⋅ 2

git cmd git bash

刚用到了Git,看到windows环境下有两个命令输入窗口 第一个是可视化图形界面,第二个是CMD,第三个是Bash。 Git中的Bash是基于CMD的,在CMD的基础上增添一些新的命令与功能。所以建议在使用的...

东东笔记 ⋅ 43分钟前 ⋅ 0

分布式系统CAP和Base

1、分布式系统 1.1 简介 由多台计算机和通信的软件组件通过计算机网络连接(本地网络或广域网)组成。分布式系统是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的...

xixingzhe ⋅ 53分钟前 ⋅ 0

查看磁盘占用情况

记一次jenkins构建失败的问题 Build step 'Send build artifacts over SSH' changed build result to UNSTABLE 网上查资料都没明确表明是什么错,回忆之前处理这样的问题。第一时间想到的是不...

ManderSF ⋅ 55分钟前 ⋅ 0

数据库管理提速:SQL解析的探索与应用

前言: SQL解析是一项复杂的技术,一般都是由数据库厂商来掌握,当然也有公司专门提供SQL解析的API。SQL解析与优化是属于编译器范畴,和C语言等其他语言的解析没有本质的区别。其中分为词法分...

java高级架构牛人 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部