Redis学习之基础篇(一)
最近,项目在做架构优化预研,其中一项优化就是使用开源的缓存组件代替原本的缓存方案,提高存取性能。Redis是当前很热的缓存解决方案,已经大规模应用在互联网领域,它的高性能和易用性以及强大的功能已经得到了验证,所以我们的项目也将它作为首选方案。接下来的几篇文章会将过程中对Redis所做的一些研究记录下来,其中难免会有纰漏之处,还请各位指出。
---------------------------------------------------------------------------- 我是分割线----------------------------------------------------------------------------------------------------------------------------------------------
Redis是一个使用ANSI C编写的开源、支持网络、基于内存、可选持久性的键值对存储数据库(来自维基百科)。Redis是流行的键值对存储数据库。
数据模型:
Redis的外围由一个键、值映射的字典组成。与其他非关系型数据库的主要不同在于:Redis中的值的类型不仅可以是字符串,还支持如下抽象数据类型:
- 字符串列表
- 无序不重复的字符串集合
- 有序补重复的字符串集合
- 键、值都为字符串的哈希表
值的类型决定了值本身可以进行的操作。
持久化:
Redis通常将全部的数据存储在内存中。但是Redis提供了两种数据持久化方案:
- RDB快照的方式,不时的将数据集以异步的方式从内存以RDB格式写入硬盘
- AOF持久化,将数据集的修改操作记录起来,这些操作都会以追加的方式记录到AOF文件中,后续恢复时,redis会创建一个虚拟的client,将AOF中的命令执行一遍,最终还原回数据库的最终状态。
同步:
Redis支持主从同步。数据可以从主服务器向任意数量的从服务器同步。按照同步内容的多少可以分为全同步和部分同步,按照同步的时机可以分为slave启动时的初始化同步和正常运行过程总的数据修改同步。
性能:
Redis这种基于内存的性质,与在执行一个事物时将每个变化都写入硬盘的数据库系统相比执行效率非常高。读写速度没有明显的差别。

浙公网安备 33010602011771号