redis 面试问题 (更新中 ing)

发布时间:2024年01月03日
reids 是做什么的
为什么那么快
有哪些使用场景

1.数据缓存
2.计数器
3.限时
4.限流
5.分布式锁
6.队列
7.发布 订阅

redis有哪些 数据结构

常用的

  • string 对字符串 、整数、浮点数
  • list 链表 ,字符串
  • set 不重复集合 ,交集、并集 差集
  • hash 无序散列
  • zset 不重复 分数排序 排行榜
    特殊的
  • 基数统计 hyperloglogs
  • 位图 bitmaps
  • 地理位置 geo
redis 有哪些底层数据结构
  • sds 动态字符串
  • quicklist 快表
  • ziplist
  • inset
  • dict
  • skiplist
为什么设计 sds
  • 常数复杂度获取字符串长度
  • 杜绝缓冲区溢出,先判断长度
  • 减少内存分配 次数,预分配,惰性释放空间
  • 兼容部分 c 函数
  • 二进制安全 ,图片,空字符,特殊符号 存储 ,判断结束
一个 字符串 存储多大容量
  • 512m

stream

为什么设计 stream

redis 支持发布订阅功能,但是有缺陷

  • list和 zet ,支持持久化,不支持主播、多播
  • pub、sub,不支持持久化,dwon 机消息丢失,
    参考 kafka,设计了 stream,支持消息回溯,消费者组
stream 消费者消息丢失
  • 对于组内消费者消费消息,现记录读取位置,消费完,回复 ack,记录消息过,如果消费者宕机,可以调用查询 pengding 列表,读取已经 读取未成功消费的消息
stream 消息私信问题
  • 对于反复失败的 消息,redis 会记录失败次数,达到一定次数 ,会打标记,消费者查询该标记,可以决定 是删除 还是怎么 处理

持久化机制

redis 持久化机制,优缺点,怎么用
文章来源:https://blog.csdn.net/qq_25385555/article/details/135362069
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。