Redis:修订间差异
TeodoroSeccombe(留言 | 贡献) 小 创建页面,内容为“。” |
无编辑摘要 |
||
| (未显示2个用户的2个中间版本) | |||
| 第1行: | 第1行: | ||
{{Infobox | |||
| title = Redis | |||
| label1 = 中文名 | |||
| data1 = 远程字典服务 | |||
| label2 = 英文名 | |||
| data2 = Remote Dictionary Server | |||
| label3 = 简称 | |||
| data3 = Redis | |||
| label4 = 开发语言 | |||
| data4 = ANSI C | |||
| label5 = 开发者 | |||
| data5 = Salvatore Sanfilippo(antirez) | |||
| label6 = 首次发布 | |||
| data6 = 2009年 | |||
| label7 = 许可证 | |||
| data7 = Redis Source Available License 或 伺服器端公众授权条款双重授权 | |||
| label8 = 官方网站 | |||
| data8 = [https://redis.io/ redis.io] | |||
|label9=最新版本|data9=8.10.1 (2026年8月18日)|image=[[File:Redis logo.svg|150px]]}}'''Redis'''(全名:Remote Dictionary [[Server]]),即远程字典服务,是一个开源的使用ANSI [[C语言]]编写、支持网络、可基于内存亦可持久化的键值对(Key-Value)[[数据]]库,并提供多种语言的API。<ref name="baike">[https://wapbaike.baidu.com/item/Redis/6549233 Redis_百度百科]</ref><ref name="aliyun">[https://www.aliyun.com/getting-started/what-is/what-is-redis 什么是Redis? - 阿里云]</ref>Redis由意大利开发者Salvatore Sanfilippo(网名antirez)于2009年创建<ref name="aliyun" />。它常被称为数据结构[[服务器]],因为其值(value)可以是字符串(String)、哈希(Hash)、列表(List)、集合(Set)、有序集合(Sorted Set)等多种数据类型<ref name="about">[https://redis.io/about/ Redis About]</ref>。Redis在[[全球]]范围内被广泛使用,在众多大型[[互联网]]公司中承担着[[缓存]]、消息队列、实时数据处理等关键角色。<ref name="aliyun" /> | |||
== 历史 == | |||
Redis项目始于2009年,由意大利开发者Salvatore Sanfilippo为其初创公司的实时网络日志分析器寻求扩展性解决方案而创建,并于同年正式发布。最初,它被设计为一个简单的键值[[存储]]系统,因其卓越的性能和简易性迅速获得了开发者社区的关注。<ref name="aliyun" /> | |||
2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。<ref name="baike" /> | |||
在成长阶段(2010—2013年),Redis逐渐增加了对多种数据类型的支持,并引入了发布/订阅、事务处理等高级功能。成熟阶段(2014—2017年),Redis开始支持集群、更高级的数据持久化选项以及[[Lua]]脚本等能力,从一个单机解决方案演变为可在分布式环境下运行的系统。扩展阶段(2018年至今),Redis被扩展至云服务和微服务[[架构]]中,实现了Redis Modules API等模块化特性。<ref name="aliyun" /> | |||
== 特性 == | |||
=== 数据结构 === | |||
Redis支持多种数据类型,主要包括:字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)与范围查询,以及位图(bitmaps)、HyperLogLog、地理空间(geospatial)索引和流(streams)等。<ref name="about" /><ref name="baike" />这些数据结构支持push/pop、add/remove及取交集、并集和差集等丰富操作,且这些操作都是原子性的。<ref name="baike" /> | |||
=== 持久化 === | |||
Redis提供了多种持久化选项:<ref name="persist">[https://redis.ac.cn/docs/management/persistence/ Redis 持久性 - redis.ac.cn]</ref> | |||
- '''RDB(Redis Database)''':在指定的时间间隔执行数据集的即时快照。 - '''AOF(Append Only File)''':记录服务器收到的每次写入操作,可在服务器启动时重新播放这些操作以重建原始数据集。 - '''无持久化''':可完全禁用持久性,适用于纯缓存场景。 - '''RDB + AOF''':可将AOF和RDB组合在同一个实例中使用。 | |||
=== 高可用与分布式 === | |||
Redis提供了哨兵(Sentinel)模式支持高可用,以及集群(Cluster)模式支持自动故障恢复和数据分片。<ref name="aliyun" />Redis还支持主从复制(replication),数据可以从主服务器向任意数量的从服务器同步。<ref name="baike" /> | |||
=== 其他功能 === | |||
Redis内置了复制(replication)、Lua脚本(Lua scripting)、LRU淘汰(LRU eviction)、事务(transactions)等功能。<ref name="about" />同时,Redis提供了键过期功能(可用于实现缓存)、发布订阅功能(可用于实现消息系统)以及流水线(Pipeline)功能,使客户端能将一批命令一次性传输到Redis,减少网络开销。<ref name="dev">[https://developer.aliyun.com/article/626498 【攻克Redis】Redis基本知识 - 阿里云开发者社区]</ref> | |||
== 许可证 == | |||
Redis的源代码长期在BSD 3-Clause许可下提供。2024年3月,Redis公司宣布从Redis 7.4开始,将采用Redis源代码可用许可证版本2(RSALv2)或服务器端公共许可证版本1(SSPLv1)的双重许可方式。<ref name="license" /><ref>[https://redis.ac.cn/blog/redis-license-bsd-will-remain-bsd/ Redis 的许可证是 BSD,并将始终是 BSD - redis.ac.cn]</ref> | |||
== 参考文献 == | == 参考文献 == | ||
<references /> | <references /> | ||