就个人感觉,Redis整体上并不用花太多时间去学习,它更像数据库一样,是一个工具,而不是一个技术。所以这里只以“会用”为目标。
Redis简介
这段算是比较水的内容,想直接进入正文,或者你知道为什么要用Redis的话,可以跳过。
- Redis全称Remote Dictionary Server,是一个开源的、使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。目前,Redis是最受欢迎的Key-Value数据库之一。
- 正是由于Redis的高性能、分布式、可扩展等特点,在目前的生产环境中,它多作为数据库缓存、消息队列、分布式锁等使用。从互联网初期到现在,由于磁盘的I/O瓶颈,直接使用MySQL读写数据会导致明显的性能问题,而内存的读写速度远远高于磁盘,所以Redis的应用解决了这个问题。即使是高速SSD普及的当下,内存的I/O速度仍然超出SSD 1~2个数量级,因此Redis仍然相当流行。
题外话:Redis的开源许可证
- Redis频频更换开源许可证的行为受到了不少的议论。
- 就在2024年3月21日,Redis官方宣布[1]从Redis 7.4版本开始,将会把开源许可证修改为SSPLv1和RSALv2的双重许可。
- 其实变更许可证的开源软件也不少,但像Redis如此频繁地变更的,可能真没几个。我们这里可以简单回顾一下[2]:
首先要明确的是,Redis在开源许可证变更过程中要分为Redis数据库和Redis模块,Redis模块属于Redis数据库的扩展,二者的开源许可证是不同的。
- Redis最早于2009年发布,使用的是BSD 3-Clause开源许可证[1],后来出现的各种Redis模块则采用了AGPL开源许可证[2]。
- 2018年,Redis官方将Redis模块的开源许可证更改为Apache 2.0[3],并附带Commons Clause。
- 2019年,Redis官方再次将Redis模块的开源许可证更改为RSALv2[4]。
- 2024年,Redis数据库和Redis模块的开源许可证均被更改为SSPLv1[5]和RSALv2的双重许可。
- 总体来讲,Redis的开源许可证是逐渐紧缩的,这难免会遭到质疑,但好在目前影响主要集中于商业用户,免费社区版的用户并不受影响。
数据类型
我总是喜欢从这个开始聊起。一般来说,基础数据类型越丰富,功能也就会越灵活。
- Redis包括5种基础数据类型和5种高级数据类型。
类别 |
数据类型 |
描述 |
基础数据类型 |
String |
字符串 |
基础数据类型 |
List |
列表 |
基础数据类型 |
Set |
集合 |
基础数据类型 |
SortedSet |
有序集合 |
基础数据类型 |
Hash |
哈希表 |
高级数据类型 |
Stream |
消息队列 |
高级数据类型 |
Geospatial |
地理空间 |
高级数据类型 |
HyperLogLog |
基数统计 |
高级数据类型 |
Bitmap |
位图 |
高级数据类型 |
Bitfield |
位域 |
参考资料
- 2024.3.21 Redis修改开源许可证
- 【开源与商业】谁用谁维护,Redis 要赚钱!
扩展阅读
- BSD许可证 - 维基百科
- GNU Affero通用公共许可证 - 维基百科
- Apache许可证 - 维基百科
- License - Redis
- Server Side Public License - 维基百科