Via 由 [ ] 提供

初探 Redis

大学的时候我们都学过一种数据结构——哈希表,查询效率非常高,复杂度为 O(1),通常关注查询性能的地方都会用到这个东西。

缓存系统,就是一个哈希表。只是通常哈希表的场景都是在本机,把哈希表放到远程的机器上,本机通过网络访问(增删查改)哈希表,就成了现在的缓存系统了。

我们还可以尝试强化这个哈希表,比如支持存储各种类型的数据;存储有价值数据的哈希表时,需要定时备份这个哈希表;访问的频率太大了,需要将数据分散到多个远程的哈希表中;远程的哈希表节点多了,又该如何管理他们等等。

所以缓存系统只是哈希表的一种延伸,它只是一种数据结构的应用。同样,Redis 也是。

这一章带大家大概浏览一下 Redis。

Redis 在缓存系统所处的位置

通常,在系统中,我们会把数据交由数据库来存储,但传统的数据库增删查改的性能较差,且比较复杂。根据 80/20 法则,百分之八十的业务访问集中在百分之二十的数据上。是否可以有一个存在于物理内存中的数据中间层,来缓存一些常用的数据,解决传统数据库数据读写性能问题。常用的数据都存储在内存中,读写性能非常可观。

这种思维在计算机中很常见,之前学习计算机系统的时候就有见过这张图:越往上层的存储设备,存储的速度就会更快。诸如,Redis, Memcache 是将可访问的数据存储在内存中,可见它们可以弥补传统数据库的不足。

包括 Redis/Memcache 这样的 key-value 内存存储系统,非常适合于读多写少的业务场景,而 Redis 是一个基于多种数据结构的内存存储系统,让缓存系统更加好玩。