出版时间:2013-5 出版社:人民邮电出版社 作者:李子骅
Tag标签:无
内容概要
《Redis入门指南》是一本Redis的入门指导书籍,以通俗易懂的方式介绍了Redis基础与实践方面的知识,包括历史与特性、在开发和生产环境中部署运行Redis、数据类型与命令、使用Redis实现队列、事务、复制、管道、持久化、优化Redis存储空间等内容,并采用任务驱动的方式介绍了PHP、Ruby、Python和Node.js这4种语言的Redis客户端库的使用方法。《Redis入门指南》的目标读者不仅包括Redis的新手,还包括那些已经掌握Redis使用方法的人。对于新手而言,《Redis入门指南》的内容由浅入深且紧贴实践,旨在让读者真正能够即学即用;对于已经了解Redis的读者,通过《Redis入门指南》的大量实例以及细节介绍,也能发现很多新的技巧。
作者简介
李子骅(Luin),北京航空航天大学软件学院2009级本科生,随行科技联合创始人。先后工作于街旁网、微软亚洲研究院和纽约时报中文网。热爱互联网,并热衷于各种新技术,对很多开发语言均有涉猎,擅长Node.js与Redis,有两年多的Redis使用经验。愿意将自己对技术的感悟与他人分享。个人博客:http://zihua.li。
书籍目录
第1章 简介 1 1.1 历史与发展 1 1.2 特性 2 1.2.1 存储结构 2 1.2.2 内存存储与持久化 3 1.2.3 功能丰富 3 1.2.4 简单稳定 4 第2章 准备 7 2.1 安装Redis 7 2.1.1 在POSIX系统中安装 7 2.1.2 在OSX系统中安装 8 2.1.3 在Windows中安装 9 2.2 启动和停止Redis 11 2.2.1 启动Redis 11 2.2.2 停止Redis 14 2.3 Redis命令行客户端 14 2.3.1 发送命令 14 2.3.2 命令返回值 15 2.4 配置 16 2.5 多数据库 17 第3章 入门 19 3.1 热身 19 3.2 字符串类型 21 3.2.1 介绍 22 3.2.2 命令 22 3.2.3 实践 26 3.2.4 命令拾遗 28 3.3 散列类型 32 3.3.1 介绍 33 3.3.2 命令 34 3.3.3 实践 37 3.3.4 命令拾遗 39 3.4 列表类型 40 3.4.1 介绍 41 3.4.2 命令 41 3.4.3 实践 44 3.4.5 命令拾遗 46 3.5 集合类型 48 3.5.1 介绍 48 3.5.2 命令 49 3.5.3 实践 52 3.5.4 命令拾遗 54 3.6 有序集合类型 57 3.6.1 介绍 57 3.6.2 命令 58 3.6.3 实践 62 3.6.4 命令拾遗 63 第4章 进阶 67 4.1 事务 67 4.1.1 概述 68 4.1.2 错误处理 69 4.1.3 WATCH命令介绍 70 4.2 生存时间 72 4.2.1 命令介绍 73 4.2.2 实现访问频率限制之一 75 4.2.3 实现访问频率限制之二 76 4.2.4 实现缓存 77 4.3 排序 78 4.3.1 有序集合的集合操作 78 4.3.2 SORT命令 79 4.3.3 BY参数 81 4.3.4 GET参数 83 4.3.5 STORE参数 84 4.3.6 性能优化 85 4.4 消息通知 85 4.4.1 任务队列 86 4.4.2 使用Redis实现任务队列 87 4.4.3 优先级队列 88 4.4.4 “发布/订阅”模式 90 4.4.5 按照规则订阅 91 4.5 管道 92 4.6 节省空间 93 4.6.1 精简键名和键值 94 4.6.2 内部编码优化 94 第5章 实践 103 5.1 PHP与Redis 103 5.1.1 安装 104 5.1.2 使用方法 104 5.1.3 简便用法 105 5.1.4 实践:用户注册登录功能 107 5.2 Ruby与Redis 111 5.2.1 安装 111 5.2.2 使用方法 111 5.2.3 简便用法 112 5.2.4 实践:自动完成 112 5.3 Python与Redis 116 5.3.1 安装 116 5.3.2 使用方法 116 5.3.3 简便用法 117 5.3.4 实践:在线的好友 117 5.4 Node.js与Redis 123 5.4.1 安装 123 5.4.2 使用方法 123 5.4.3 简便用法 125 5.4.4 实践:IP地址查询 127 第6章 脚本 131 6.1 概览 131 6.1.1 脚本介绍 132 6.1.2 实例:访问频率限制 132 6.2 Lua语言 133 6.2.1 Lua语法 134 6.2.2 标准库 143 6.2.3 其他库 146 6.3 Redis与Lua 147 6.3.1 在脚本中调用Redis命令 147 6.3.2 从脚本中返回值 148 6.3.3 脚本相关命令 148 6.3.4 应用实例 149 6.4 深入脚本 152 6.4.1 KEYS与ARGV 152 6.4.2 沙盒与随机数 153 6.4.3 其他脚本相关命令 154 6.4.4 原子性和执行时间 155 第7章 管理 157 7.1 持久化 157 7.1.1 RDB方式 157 7.1.2 AOF方式 159 7.2 复制 161 7.2.1 配置 161 7.2.2 原理 163 7.2.3图结构 164 7.2.4 读写分离 165 7.2.5 从数据库持久化 165 7.3 安全 166 7.3.1 可信的环境 166 7.3.2 数据库密码 166 7.3.3 命名命令 167 7.4 通信协议 167 7.4.1 简单协议 167 7.4.2 统一请求协议 169 7.5 管理工具 170 7.5.1 redis—cli 170 7.5.2 phpRedisAdmin 171 7.5.3 Rdbtools 173 附录A Redis命令属性 175 A.1 REDIS_CMD_WRITE 175 A.2 REDIS_CMD_DENYOOM 177 A.3 REDIS_CMD_NOSCRIPT 178 A.4 REDIS_CMD_RANDOM 179 A.5 REDIS_CMD_SORT_FOR_SCRIPT 179 A.6 REDIS_CMD_LOADING 179 附录B 配置参数索引 181
章节摘录
版权页: 插图: 现在我们希望将这篇文章的数据存储在数据库中,并且要求可以通过标签检索出文章。如果使用关系数据库存储,一般会将其中的标题、正文和阅读量存储在一个表中,而将标签存储在另一个表中,然后使用第三个表连接文章和标签表。需要查询时还得将三个表进行连接,不是很直观。而Redis字典结构的存储方式和对多种键值数据类型的支持使得开发者可以将程序中的数据直接映射到Redis中,数据在Redis中的存储形式和其在程序中的存储方式非常相近。使用Redis的另一个优势是其对不同的数据类型提供了非常方便的操作方式,如使用集合类型存储文章标签,Redis可以对标签进行如交集、并集这样的集合运算操作。3.5节会专门介绍如何借助集合运算轻易地实现“找出所有同时属于A标签和B标签且不属于C标签”这样关系数据库实现起来性能不高且较为繁琐的操作。 1.2.2内存存储与持久化 Redis数据库中的所有数据都存储在内存中。由于内存的读写速度远快于硬盘,因此Redis在性能上对比其他基于硬盘存储的数据库有非常明显的优势,在一台普通的笔记本电脑上,Redis可以在一秒内读写超过十万个键值。 将数据存储在内存中也有问题,例如,程序退出后内存中的数据会丢失。不过Redis提供了对持久化的支持,即将可以内存中的数据异步写入到硬盘中,同时不影响继续提供服务。 1.2.3 功能丰富 Redis虽然是作为数据库开发的,但由于其提供了丰富的功能,越来越多的人将其用作缓存、队列系统等。Redis可谓是名副其实的多面手。 Redis可以为每个键设置生存时间(Time To Live,TTL),生存时间到期后键会自动被删除。这一功能配合出色的性能让Redis可以作为缓存系统来使用,而且由于Redis支持持久化和丰富的数据类型,使其成为了另一个非常流行的缓存系统Memcached的有力竞争者。
编辑推荐
国内市场上第一本中文Redis图书。紧密结合实践,结合作者的开发经验,对很多Redis使用者的疑惑进行了解答,是官方文档的有力补充。语言生动有趣,读者可跟随着主人公小白的脚步在轻松的氛围中学习。
名人推荐
作为一本Redis入门手册,全书介绍很全面,朴实的语言让工程师能很快上手,即便对于知乎这样有不少Redis使用经验的团队,也能从中发现新鲜点,相信它对很多创业团队也会有帮助。 ——李申申,知乎网联合创始人、首席技术官 随着互联网业务对性能需求的日益强烈,作为Key/Value存储的Redis具有数据类型丰富,性能表现优异的特点。如果能够熟练地驾驭它,不管把它用做缓存还是存储,对很多大型应用都很有帮助。新浪作为世界上最大的Redis使用者,体验到了Redis为高并发在线业务带来的好处,但同时也遇到了很多挑战,新浪在推动Redis这种NoSQL产品在中国互联网产品技术架构中的使用做出了卓越的贡献。作为国内第一本推进Redis普及的书,此书比较详细地介绍了Redis入门必备的基础知识,同时具有一些实践性方面的章节。如果你对Redis感兴趣,推荐你阅读此书,此书会带领你开启Redis的使用大门。 ——杨海朝,新浪首席数据库架构师 在任何规模,任何类型的服务器项目中,都存在一些最适合用Redis来存储的数据。而对Redis有了充分了解后,你就能把这个下一代的数据结构服务器用到最适合的地方。这本书可以帮助你成为Redis专家。 ——刘昕, V2EX.com创始人 Redis作为可持久化的高性能Key/Value存储服务,已经逐步成为各大互联网公司系统开发的首选。本书能够通过简单朴实的语言,深入浅出的介绍Redis各种使用方法和技巧,是一本不可多得的好书。 ——吴一飞,腾讯微博商业产品中心项目经理 Redis最近几年在国内的发展势头非常不错,很多公司开始选择Redis作为自己的缓存或小数据量存储方案,但目前市场上介绍Redis的相关书籍却非常匮乏。本书恰好弥补了这一缺口,是一本非常不错的入门进阶书籍,书中介绍的应用实践案例也都是一些典型的应用场景,并在此之上深入介绍一些Redis原理和优化上的内容,相信读过之后会对Redis有一个非常全面而又深入的了解。 ——田琪,腾讯公司高级工程师 与传统的数据库相比,Redis提供了对多种数据结构的原生支持,在很多场合能够更方便地存储和处理数据。本书以各种实例带领读者走进Redis的世界,展现Redis的独到之处,非常值得一读。 ——刘其帅,街旁网高级软件开发工程师
图书封面
图书标签Tags
无
评论、评分、阅读与下载