前言
Redis作为一个流行的key-value内存数据存储,由于性能高、数据类型丰富、API 功能强大、可用性高及架构可伸缩等特点,最近受到了越来越多的关注。
自2017年以来,Redis 已经成功地在DB-Engine数据库排行榜( DB- Engine Complete Ranking)中排到了9/10。 在那之前,Redis 甚至还占据过DB-Engine键值存储分类榜单的第一名相当长一段时间。从早期的2.x版本到4.x版本,Redis引入了很多优秀的特性来帮助希望在业务场景中交付低延迟服务的用户。
目录
内容简介
Redis是一个十分热门的内存数据库,号称后端的“瑞士军刀”,它拥有诸多优良特性,已经被越来越多的公司采用,值得每一位开发者学习。
通过本文讲述的Redis在设计、开发和运维等方面的80多个实战案例,读者不仅可以由浅人深地学到有关Redis的几乎所有知识,还可以将案例中所讲解的内容直接用于包括设计、开发和运维等在内的各类生产实践。
本文中的每一个案例、 每一个案例中所涉及的各种知识、命令和工具等,均来自作者一线企业级应用的总结;
本文中总结的各类参数配置和故障诊断的案例等,也均来自作者真实企业级运维工作的经验。
主要内容
第1章,开始使用Redis,主要涉及Redis服务器端的安装和基本操作,包括启动和停止Redis服务器、使用redis-cli连接到Redis和获取服务器信息。在本章的最后,还介绍了Redis 事件模型和Redis通信协议。
第2章,数据类型,主要涉及Redis的数据类型和操作数据类型的常见API命令。本章介绍了Redis 4.x版本中支持的所有数据类型(字符串string. 列表list、哈希hash.集合set、有序集合sortedset、 HyperLogLog和Geo )。 本章还讨论了基本的Redis键管理。
第3章,数据特性,主要涉及一些有用的Redis特性,这些特性使操作数据变得更加容易。本章首先展示了如何使用位图( bitmap )、SORT命令和设置键的过期时间。之后,向读者介绍了Redis的三个重要功能:管道( pipeline)、事务( transaction )和发布订阅( PubSub)。在本章的最后,我们演示了如何在Redis中编写和调试Lua脚本。
第4章,使用Redis进行开发,演示了如何使用Redis开发应用程序。首先,本章讨论了Redis的使用场景和数据类型及API的选择。之后,本章展示了使用Redis客户端库Jedis和redis-py 开发Java和Python 应用程序的示例。最后,本书介绍了在Spring Framework中使用Redis 及在MapRe-duce/Spark作业中使用Redis的例子。
第5章,复制( Replication),主要涉及Redis的复制机制。本章展示了如何配置Redis从实例并解释了Redis主从复制的工作原理。然后,本章对Redis 调优及主从复制相关的故障排除主题进行了讨论。
第6章,持久化( Persistence ),介绍了Redis 中的两种持久化方式: RDB和AOF。本章展示了如何在Redis中启用RDB和AOF来实现持久化,并解释了持久化的工作原理。本章还讨论了RDB和AOF之间的区别,以及如何将这两种方式结合起来使用。
第7章,配置高可用和集群( Cluster),主要涉及Redis的高可用相关架构。本章演示了如何配置Redis Sentinel和Redis Cluster,并通过几个实验对Redis Sentinel和Redis Cluster的工作原理进行了解释。
第8章,生产环境部署,讨论了在生产环境中部署Redis时所要注意的事项。本章首先讨论了操作系统、网络和安全方面的考虑;之后,涉及了配置调整和日志两个主题,也对LRU策略进行了讨论。最后,本章还讨论了Redis的性能/压力测试。
第9章,管理Redis,主要涉及各种Redis的管理任务,包括更新服务器配置、使用redis-cli.备份和恢复数据、管理内存使用、管理客户端和数据迁移等。
第10章,故障诊断,主要涉及几个有关排除Redis故障的实例。本章涵盖了使用慢日志来定位慢查询的例子,还演示了排除延迟、内存和进程崩溃等常见故障的案例。
第11章,通过模块扩展Redis,讨论了如何使用Redis模块来扩展Redis的功能。本章讲解了Redis模块的工作原理,并演示了如何使用Redis模块SDK来构建Redis 模块。
第12章, Redis 生态环境,讲解了Redis的第三方组件,还简要地介绍了几个流行的工具、客户端和代理。
附录A. Windows环境搭建、介绍了如何在Windows环境中运行Redis。
这份【Redis 4.x Cookbook中文版】共有322页,需要完整版的朋友,点击这里即可!!!
面向读者
本文面向的是希望开始使用Redis或加深对其认知的开发人员、架构师和DBA。
如果读者想使用Redis设计高性能、可伸缩的数据库解决方案,那么本文将通过各种各样的实战案例来引领读者全面深入地了解Redis。
本文对于寻求日常运维Redis工作中所碰到的常见问题解决方案的DBA而言同样有用。
本文涵盖了使用Redis所涉及的所有方面,并为Redis的日常使用提供了全方位的解决方案和技巧提示。尽管要充分利用本书需要对Redis有一些基本的理解,但也并不是必需的。
努力不一定有收获,不努力一定不会有收获~