编辑推荐 1.内容实用。帮助读者更好地了解如何使用Redis解决实际问题,应对在真实开发场景中可能面对的挑战。 2.知识点丰富。全书32个应用实例覆盖了Redis常见的应用场景和使用方法。不仅介绍使用Redis命令实现应用实例的方法,还给出与之对应的可运行的Python代码。易于理解,又方便读者做进一步的拓展学习或者进行代码移植。 3.帮助Redis初学者快速将Redis应用到实际场景中,引导有一定基础的Redis开发者探索Redis的高级特性,提升系统性能。 4.通过对书中介绍的Redis应用实例的学习,能面提升Redis技能,解锁Redis开发的无限可能,真正成为能够使用Redis解决各类实际问题的技术高手。 本书特色 ●贴近实战:书中所有实例均取材于实际应用场景,展示Redis在实际开发中的多样性,方便读者将所学方法复用到项目中,提升开发效率。 ●内容全面:书中既介绍了经典的缓存、锁、数据结构等低层应用,又介绍了紧跟潮流的自动补全、排行榜、地理位置等高层应用,为读者提供全面的技术内容。 ●代码详尽:书中所有应用实例均基于新版Redis和Python编写,每个实例都是可执 行的,并包含了必需的API,读者可以方便地在这些实例的基础上进行测试、修改和扩展。 ●配套视频:作者专为书中较复杂的知识点录制了“Redis应用十讲”视频讲解,读者可以扫描对应章节首页的码免费观看,并获得完整视频讲解PPT课件。 ●简洁精练:书中应用实例简洁、易懂,各技术层级的读者均可轻松阅读。 内容推荐 本书将从内部组件、外部应用和数据结构3个方面为读者介绍Redis常见、经典的用法与实例,并且所有实例均附有完整的Python代码,方便读者学习和参考。全书分3个部分:第一部分讲内部组件,介绍的实例通常用于系统内部,如缓存、锁、计数器、迭代器、速率器等,这些都是很多系统中不可或缺的部分;第二部分讲外部应用,介绍的实例都是一些日常常见的、用户可以直接接触到的应用,如直播弹幕、社交关系、排行榜、分页、地理位置等;第三部分讲数据结构,介绍的实例是一些使用Redis实现的常见数据结构,如先进先出队列、栈、优先队列和矩阵等。本书希望通过展示常见的Redis应用实例来帮助读者了解使用Redis解决各类问题的方法,并加深读者对Redis各项命令及数据结构的认识,使读者真正成为能够使用Redis解决各类问题的Redis专家。 本书适合对Redis有基本了解且想要进一步掌握Redis及键值数据库具体应用的技术人群,是理想的Redis技术进阶读物。 目录 第 一部分 内部组件 第 1章 缓存文本数据\t3 1.1 需求描述\t3 1.2 解决方案:使用字符串键缓存单项数据\t3 1.3 实现代码:使用字符串键缓存单项数据\t4 1.4 解决方案:使用JSON/哈希键缓存多项数据\t5 1.5 实现代码:使用JSON/哈希键缓存多项数据\t6 1.6 重点回顾\t9 第 2章 缓存二进制数据\t11 2.1 需求描述\t11 2.2 解决方案\t11 2.3 实现代码\t12 2.4 重点回顾\t13 第3章 锁\t15 3.1 需求描述\t15 3.2 解决方案\t15 3.3 实现代码\t16 3.4 扩展方案:带自动解锁功能的锁\t17 3.5 重点回顾\t19 第4章 带密码保护功能的锁\t21 4.1 需求描述\t21 4.2 解决方案\t21 4.3 实现代码\t22 4.4 重点回顾\t23 第5章 自增数字ID\t25 5.1 需求描述\t25 5.2 解决方案:使用字符串键\t25 5.3 实现代码:使用字符串键实现自增数字ID生成器\t26 5.4 解决方案:使用哈希键\t27 5.5 实现代码:使用哈希键实现自增数字ID生成器\t27 5.6 重点回顾\t28 第6章 计数器\t29 6.1 需求描述\t29 6.2 解决方案:使用字符串键\t29 6.3 实现代码:使用字符串键实现计数器\t30 6.4 解决方案:使用哈希键\t31 6.5 实现代码:使用哈希键实现计数器\t32 6.6 重点回顾\t33 第7章 专享计数器\t35 7.1 需求描述\t35 7.2 解决方案:使用集合键\t35 7.3 实现代码:使用集合键实现专享计数器\t36 7.4 解决方案:使用HyperLogLog键\t37 7.5 实现代码:使用HyperLogLog键实现专享计数器\t38 7.6 重点回顾\t39 第8章 速率器\t41 8.1 需求描述\t41 8.2 解决方案\t41 8.3 实现代码\t42 8.4 重点回顾\t45 第9章 二元操作记录器\t47 9.1 需求描述\t47 9.2 解决方案\t47 9.3 实现代码\t48 9.4 重点回顾\t49 第 10章 资源池\t51 10.1 需求描述\t51 10.2 解决方案\t51 10.3 实现代码\t52 10.4 重点回顾\t54 第 11章 紧凑字符串\t57 11.1 需求描述\t57 11.2 解决方案\t58 11.3 实现代码\t58 11.4 重点回顾\t60 第 12章 数据库迭代器\t61 12.1 需求描述\t61 12.2 解决方案\t61 12.3 实现代码\t62 12.4 扩展实现:数据库采样程序\t64 12.5 重点回顾\t66 第 13章 流迭代器\t67 13.1 需求描述\t67 13.2 解决方案:使用XRANGE\t67 13.3 实现代码:使用XRANGE实现 流迭代器\t69 13.4 解决方案:使用XREAD\t70 13.5 实现代码:使用XREAD实现流 迭代器\t71 13.6 重点回顾\t73 第二部分 外部应用 第 14章 消息队列\t77 14.1 需求描述\t77 14.2 解决方案\t77 14.3 实现代码\t78 14.4 扩展实现:直播间弹幕系统\t 80 14.5 重点回顾\t82 第 15章 标签系统\t85 15.1 需求描述\t85 15.2 解决方案\t85 15.3 实现代码\t86 15.4 扩展实现:为根据标签查找目 标功能加上缓存\t88 15.5 重点回顾\t90 第 16章 自动补全\t91 16.1 需求描述\t91 16.2 解决方案\t91 16.3 实现代码\t92 16.4 扩展实现:自动移除冷门输入建议表\t94 16.5 重点回顾\t96 第 17章 抽奖\t97 17.1 需求描述\t97 17.2 解决方案\t97 17.3 实现代码\t98 17.4 重点回顾\t100 第 18章 社交关系\t101 18.1 需求描述\t101 18.2 解决方案\t101 18.3 实现代码\t102 18.4 重点回顾\t105 第 19章 登录会话\t107 19.1 需求描述\t107 19.2 解决方案\t107 19.3 实现代码\t108 19.4 重点回顾\t110 第 20章 短网址生成器\t111 20.1 需求描述\t111 20.2 解决方案\t111 20.3 实现代码\t113 20.4 扩展实现:为短网址生成器加上缓存\t114 20.5 重点回顾\t116 第 21章 投票\t117 21.1 需求描述\t117 21.2 解决方案\t117 21.3 实现代码\t119 21.4 重点回顾\t121 第 22章 排行榜\t123 22.1 需求描述\t123 22.2 解决方案\t123 22.3 实现代码\t124 22.4 重点回顾\t126 第 23章 分页\t127 23.1 需求描述\t127 23.2 解决方案\t127 23.3 实现代码\t129 23.4 重点回顾\t131 第 24章 时间线\t133 24.1 需求描述\t133 24.2 解决方案\t133 24.3 实现代码\t135 24.4 重点回顾\t138 第 25章 地理位置\t139 25.1 需求描述\t139 25.2 解决方案\t139 25.3 实现代码\t140 25.4 扩展实现:实现“摇一摇”功能\t142 25.5 扩展实现:为“摇一摇”功 能设置缓存\t143 25.6 重点回顾\t145 第三部分 数据结构 第 26章 先进先出队列\t149 26.1 需求描述\t149 26.2 解决方案\t149 26.3 实现代码\t150 26.4 扩展实现:反方向的队列\t152 26.5 重点回顾\t153 第 27章 定长队列和淘汰队列\t155 27.1 需求描述\t155 27.2 解决方案\t155 27.3 实现代码\t157 27.4 扩展实现:淘汰队列\t158 27.5 重点回顾\t160 第 28章 栈(后进先出队列)\t161 28.1 需求描述\t161 28.2 解决方案\t161 28.3 实现代码\t162 28.4 扩展实现:为栈添加更多方法\t163 28.5 重点回顾\t164 第 29章 优先队列\t165 29.1 需求描述\t165 29.2 解决方案\t165 29.3 实现代码\t167 29.4 扩展实现:为优先队列加上阻塞操作\t169 29.5 重点回顾\t170 第30章 循环队列\t171 30.1 需求描述\t171 30.2 解决方案\t171 30.3 实现代码\t172 30.4 扩展实现:无重复元素的循环队列\t174 30.5 重点回顾\t176 第31章 矩阵\t177 31.1 需求描述\t177 31.2 解决方案:使用列表\t177 31.3 实现代码:使用列表实现矩阵存储\t178 31.4 解决方案:使用位图\t180 31.5 实现代码:使用位图实现矩阵存储\t181 31.6 重点回顾\t184 第32章 逻辑矩阵\t185 32.1 需求描述\t185 32.2 解决方案\t185 32.3 实现代码\t186 32.4 扩展实现:优化内存占用\t188 32.5 重点回顾\t192 |