最近学习了Redis的数据模型和操作接口(PUT/SCAN/DELETE/SET/GET等),在考虑一个问题:Redis的键值对 保存在内存还是外存?
保存在内存的好处是读写很快,毕竟内存的访问速度一般都在百 ns 级别。但是,潜在的风险是一旦掉电,所有的数据都会丢失。
保存在外存,虽然可以避免数据丢失,但是受限于磁盘的慢速读写(通常在几 ms 级别),键值数据库的整体性能会被拉低。
因此,如何进行设计选择,我们通常需要考虑键值数据库的主要应用场景。
比如,缓存场景下的数据需要能快速访问但允许丢失,那么,用于此场景的键值数据库通常采用内存保存键值数据。
Memcached 和 Redis 都是属于内存键值数据库。
对于 Redis 而言,缓存是非常重要的一个应用场景。
后面我再具体学习 Redis 作为缓存使用的关键机制、优势,以及常见的优化方法。
Redis 是一个非常优秀的系统,它在 CPU 使用、内存组织、存储持久化和网络通信这四大方面的设计非常经典,而这些,基本涵盖了一个优秀的后端系统工程师需要掌握的核心知识和关键技术。
不过,一个人单枪匹马地去学习,往往很难坚持下去。如果你身边也有在使用 Redis 的同学,我希望你们可以一起学习,互相鼓励。