八股训练营第 21 天 | Redis的数据类型有哪些?Redis是单线程的还是多线程的,为什么?说一说Redis持久化机制有哪些?

Redis的数据类型有哪些?

  1. 字符串(String):最基本的数据结构。用于缓存、分布式锁等。
  2. 哈希表(Hash):存储字段和值的映射。用于存储对象。
  3. 列表(List):存储有序的列表。
  4. 集合(Set):存储不重复的元素集合。
  5. 有序集合(Zset):也是存储不重复的元素集合,但每个元素关联了一个分数,可根据分数进行排序。常用于排行榜等。

后来的版本新增:

  1. BitMap:用于位运算。
  2. HyperLogLog:基于基数运算。用于统计元素出现次数
  3. Geo:存储地理位置数据。
  4. Stream:用于消息队列。

Redis是单线程的还是多线程的,为什么?

Redis 在接收客户端命令、解析命令、进行数据读写操作、发送数据给客户端这一过程是单线程的。但是 Redis 程序是多线程的。会启动一些像关闭文件、AOF 刷盘、释放内存的线程。这些操作由于耗时较长,如果都放在主线程中容易阻塞主线程。

Redis 使用单线程来处理所有客户端请求的原因:

  1. 简化并发控制,避免多线程的同步问题。
  2. 避免了多线程导致的上下文切换带来的开销和 CPU 的消耗,避免了锁竞争。
  3. 保证了请求的顺序执行,天然具有分布式锁等特性。

此外,在 Redis 6.0 之后,Redis 引入了多线程来处理网络 I/O 这部分,用于减少网络 I/O 阻塞带来的性能消耗。

Redis 的主要工作(网络 I/O 和执行命令)一直是单线程模型,6.0 之后,网络 I/O 引入了多线程。

说一说Redis持久化机制有哪些?

  1. AOF:Redis 每执行一条操作命令,就将该命令追加写入到一个文件中。
  2. RDB:Redis 会定时地将内存中的数据以二进制的形式写入磁盘中。

AOF 的优点是数据丢失得比较少,最多只有 1 秒的数据丢失;缺点是数据恢复速度比较慢。

RDB 的优点是数据恢复速度快;缺点是快照的频率不好把握,如果频率过低,数据可能丢失得比较多。如果频率过高,又会对性能产生影响。

所以在 4.0 之后 Redis 推出了混合持久化机制。它集成了 RDB 和 AOF 的优点。既能保证恢复速度,又能使数据尽可能丢失得少。

相关推荐
这个DBA有点耶26 分钟前
同城双活落地的三座山:网络延迟、脑裂预防、反向同步
数据库·架构·dba
青春之我_XP26 分钟前
MySQL 常用日期函数 实战指南
数据库·sql·mysql·数据分析·数据库开发·日期函数
Nturmoils26 分钟前
sys_dump 备了库,角色和权限别漏在外面
数据库
接着奏乐接着舞。44 分钟前
【2026】73道Redis 常见面试题与参考答案
数据库·redis·后端·缓存
其实防守也摸鱼2 小时前
权限提升与横向移动:从内网渗透到域控的完整技术图谱
运维·服务器·数据库·安全·github·copilot·渗透
人生百态,人生如梦2 小时前
每日论文解读(9.1)——ReToolSQL:面向鲁棒Text-to-SQL的Agentic强化学习与工具增强两阶段训练框架
数据库·sql
DevOpenClub2 小时前
网页采集如何稳定输出结构化数据:JSON、链接与快照三阶段流水线
数据库·json·api
其实防守也摸鱼3 小时前
免杀与持久化入门:从载荷免杀到隐蔽通道的完整指南
运维·服务器·数据库·安全·github·copilot·渗透
SelectDB3 小时前
统一全文检索与 SQL 分析:Apache Doris 日志分析实践
运维·数据库·掘金技术征文
麻瓜code3 小时前
【MySQL】SQL优化实战:从慢查询定位到查询改写
数据库·sql·mysql