1.5 小结
本章对Redis进行了初步的介绍,说明了Redis与其他数据库的相同之处和不同之处,以及一些读者可能会使用Redis的理由。在阅读本书的后续章节之前,请记住本书的目标并不是构建一个完整的应用或者工具,而是展示各式各样的问题,并给出使用Redis来解决这些问题的办法。
本章希望向读者传达这样一个概念:Redis是一个可以用来解决问题的工具,它既拥有其他数据库不具备的数据结构,又拥有内存存储(这使得Redis的速度非常快)、远程(这使得Redis可以与多个客户端和服务器进行连接)、持久化(这使得服务器可以在重启之后仍然保持重启之前的数据)和可扩展(通过主从复制和分片)等多个特性,这使得用户可以以熟悉的方式为各种不同的问题构建解决方案。
在阅读本书的后续章节时,请读者注意自己解决问题的方式发生了什么变化:你也许会惊讶地发现,自己思考数据问题的方式已经从原来的“怎样将我的想法塞进数据库的表和行里面”,变成了“使用哪种Redis数据结构来解决这个问题比较好呢?”。
接下来的第2章将介绍使用Redis构建Web应用的方法,阅读这一章将帮助你更好地了解Redis的用法和用途。
① 分片是一种将数据划分为多个部分的方法,对数据的划分可以基于键包含的ID、基于键的散列值,或者基于以上两者的某种组合。通过对数据进行分片,用户可以将数据存储到多台机器里面,也可以从多台机器里面获取数据,这种方法在解决某些问题时可以获得线性级别的性能提升。
② 客观来讲,memcached也能用在这个简单的场景里,但使用Redis存储聚合数据有以下3个好处:首先,使用Redis可以将彼此相关的聚合数据放在同一个结构里面,这样访问聚合数据就会变得更为容易;其次,使用Redis可以将聚合数据放到有序集合里面,构建出一个实时的排行榜;最后,Redis的聚合数据可以是整数或者浮点数,而memcached的聚合数据只能是整数。