Redis是Remote Dictionary Server的缩写,可以翻译成远程字典服务。Redis是用C语言编写的开源项目。
Redis 最主要的特点就是高性能,对于简单的键值读取速度可以达到100000次/s,在理想情况下简单的键值写入速度可以达到80000次/s。基于此特性Redis主要用来做缓存系统或者内存数据存储。
Redis支持丰富的数据类型,包括字符串(String)、哈希(Hash)、列表(List)、集合(Set)、有序集合(Sorted Set)、流(Stream)、位图(Bitmap)、位域(Bitfield)以及地理空间索引(GeoSpatial)等。如此丰富的数据类型可以灵活应用于各种场景,并且取得高效的数据存取和操作效率。
Redis还有许多高级特性:
① 发布/订阅(Pub/Sub):支持发布/订阅模式,允许客户端订阅频道并接收消息,用于实现实时消息推送和广播。
② 事务:支持 MULTI、EXEC、WATCH 和 DISCARD 命令,允许一组命令作为一个事务执行,确保原子性。
③ 持久化、
a) RDB(Redis Database Backup):周期性地将数据库快照保存到磁盘,用于数据恢复。
b) AOF(Append-Only File):记录每个写操作到日志文件,提供更高的数据恢复精度。
c) 混合持久化:结合 RDB 和 AOF 的优点,提供更高效的持久化方案。
④ 集群
a) 主从模式:主节点负责写操作,从节点负责读取操作,实现读写分离和基本的故障恢复。
b) 哨兵模式:用于提供高可用性和自动故障转移,监控主节点和从节点的状态,当主节点故障时自动切换到从节点成为新的主节点。
c) 分片模式:通过数据分片将数据分布在多个节点上,提高性能和可扩展性,每个节点存储一个分区数据,达到支持大规模的数据处理
⑤ Lua 脚本:允许使用 Lua 脚本在 Redis 服务器端执行原子操作,减少了客户端和服务器之间的往返次数。
⑥ 内存管理:支持多种内存管理策略,如 LRU(Least Recently Used) 和 LFU(Least Frequently Used),用于控制内存使用和数据淘汰策略
⑦ 模块支持:允许通过 Redis Modules 扩展 Redis 的功能,引入新的数据类型和命令,满足特定应用需求
这些高级特性可以支持更复杂的业务需求,满足更高的定制化需求。
后面我们将继续从以下5个方面继续学习:
① 安装:包括Windows、Linux以及Docker三种环境详细安装过程。
② 客户端工具:选择一款客户端工具。
③ 基础指令学习:学习一些常用指令。
④ C#/.NET实战:选择一款C#/.NET客户端库进行编码实战。
⑤ C#/.NET封装:对客户端库进行二次封装,方便后期使用。
注:测试方法代码以及示例源码都已经上传至代码库,有兴趣的可以看看。https://gitee.com/hugogoos/Planner