简介
REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库。
Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。
Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、**集合(sets)和有序集合(sorted sets)**等类型。
Redis 采用经典的Server-Client架构。
高性能
C语言编写,Redis 数据存储在内存中,因此能够提供极快的读写操作。它采用单线程模型和异步 I/O,避免了多线程的竞争和阻塞,从而达到了非常高的性能。
Redis的命令是原子性的。
获取请求达到每秒110000次,设置请求达到每秒80000次。
Redis基于内存操作,CPU不是其性能瓶颈,其性能瓶颈是内存频率和网络带宽。
注意:高性能服务器不一定是多线程的,因为线程切换需要进行上下文切换,会消耗一定的资源。
数据结构多样
Redis 支持多种数据结构,包括字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。这些数据结构提供了丰富的操作命令,使得开发者可以方便地处理各种数据需求。
持久化支持
Redis 提供了两种持久化方式,即快照(Snapshotting)和日志追加(Append-only file,AOF)。快照方式将 Redis 内存数据以二进制格式写入磁盘,而 AOF 则通过追加记录 Redis 的操作命令来实现持久化。
发布/订阅
Redis 支持发布/订阅模式,可以用作消息代理。发布者将消息发送到指定的频道,订阅者则可以接收和处理这些消息。这种模式在构建实时通信、事件驱动系统和消息队列等场景中非常有用。
分布式缓存
Redis 可以通过主从复制和分片来实现数据的分布式存储和高可用性。主从复制可以将数据复制到多个从节点,实现读写分离和数据备份。而分片则可以将数据分布在多个Redis节点上,实现横向扩展和负载均衡。
事务支持
Redis 支持事务,但其与常规事务不同,无法实现原子性。
功能丰富
Redis不仅仅是一个简单的缓存,它还提供了许多其他功能,如事务支持、Lua脚本执行、定时任务、原子操作等。这使得开发者可以在Redis中实现更复杂的应用逻辑。
参考 https://redis.com.cn/redis-intro.html Redis中文网
redis的学习路线及个人心得。基于linux,因此需要具备一定的linux基础,以及具备一定的计算机基础。