Redis散杂记
Redis是一款很火的KV模式的内存数据库,与众不同的特点:
1、数据存储在内存
内存的读取速度仅次于CPU的寄存器、各等级缓存,“英雄”自动敏捷属性,特点就是快、高效。因此不需要类似存储磁盘的数据库需要借助建立索引(快速定位磁盘页,减少IO开销)才能实现高效检索。
2、单线程串行
单线程的优缺点泾渭分明,安全、无须线程切换的开销(进一步提升性能)。串行意味着执行顺序严格,轻易实现分布式锁等功能(NX不存在才会执行成功,单线程情况下必须按先后执行顺序,如果前者成功,后者必然失败)。
既然是数据库产品,类比联想是一个不错学习方法,可以在脑中形成一个轮廓。
通常最早接触的应该是关系型数据库,以mysql为例:
Mysql | MongoDB | Redis |
DB | DB | DB |
Table(表) |
Collection(集合) |
dataStructure数据类型(String/list...) |
column | key | key |
row | key:value | key:value |
程序(功能)=数据结构+算法,套用此公式就能得出Redis能够实现的基本功能,Redis支持常见的数据类型,通过组合多种数据结构可以实现复杂的功能。因此数据机构才是根基。
例如:list 链表是一种线性的数据结构,根据这种类型可以演变为队列、栈等。
冰冻三尺非一日之寒!