redis问题汇总

文章目录

一.redis的优点

1.数据在内存中,运算速度更快

2.使用了非阻塞的NIO读写模型,通过时间轮询API处理读写事件,支持更高的并发量、

3.通信协议简单、解析性能高

4.支持管道将命令分组发送执行,减少了网络IO,更高效

5.redis使用了编码技术优化了空间占用,还会对一些小对象进行压缩存储

二.redis的数据结构

  • 基础:string、hash、list、set、zset

  • 进阶:HyperLogLog、GeoHash、BloomFilter

三.redis分布式锁是怎么回事?

使用setnx和ex结合使用,redis还提供了set key nx value ex 5的形式进行原子性设置,但是会存在超时自动释放的问题

四.redis里面有1亿个key,其中有10w个key是以某个固定前缀开头的,如何将他们全部找出来?

可以使用keys命令,但是是一次遍历全部数据,可能会导致线程阻塞。可以使用scan命令,可以无阻塞地取出指定模式的key列表,但是可能会重复,花费时间也会更长

五.如何使用redis作异步队列

一般使用list作异步队列,rpush产生消息,lpop消费消息,当lpop没有消息时,sleep一会儿再重试。

  • 能不能不用sleep?

​ 可以使用阻塞获取消息,当没有消息时会阻塞直到消息到来。

  • 能不能生产一次消费多次?

    可以使用pub/sub主题订阅者模式,可以实现1:N的消息队列

  • pub/sub有什么缺点?

    不支持持久化,消费者下线时消息会丢失

  • 如果利用redis实现延迟队列?

    使用zset,消息内容作为key,时间戳作为score,通过zadd添加消息,消费者使用zrangebyscore获取轮询处理消息

六.如果有大量的key需要设置同一过期时间,一般需要注意什么?

大量的key集中在同一时间过期时,redis会出现短暂的卡顿,一般需要在时间上加一个随机值,使得过期时间分散些

七.redis如何做持久化?

bgsave做镜像全量持久化,aof做增量持久化。bgsave比较耗时,不够实时,需要配合aof使用。重启时有限使用aof恢复,如果没有才会使用rdb文件恢复

  • aof文件过大怎么办?

    redis会定期对aof进行重写,压缩aof文件大小。redis4.0之后有了混合持久化的功能,将rdb文件和aof文件进行融合,既兼顾了效率,又保证了数据的安全。

  • redis宕机数据会怎样?

    取决于redis刷盘配置,可以按照每条执行都执行一次sync动作,但是性能会降低;也可以配置每秒刷新一次,那么宕机时只会丢失1s的数据。

八.pipline有什么好处?

可以将多次网络IO往返的时间缩短为1次。

九.redis同步机制了解吗?

redis可以使用主从同步或从从同步。第一次同步时主节点做bgsave生成rdb文件,并将后续的修改记录保存到bufffer中,待完成后将rdb文件全量复制到从节点,从节点将rdb文件全量加载到内存。加载完成后再通知主节点将同步期间的修改同步到复制节点就完成了同步

十.是否使用过redis集群?

redis-sentinel着眼于高可用,master宕机时会将slave自动提升为master,继续提供服务

redis-cluster侧重于扩展性,在单个redis内存不足时,使用cluster进行分片存储。

相关推荐
记忆停留w11 分钟前
从单体到微服务:Redis 协同 MySQL、Milvus、MinIO 搭建企业级RAG/AI Agent脚手架架构
大数据·人工智能·redis·微服务·ai·架构·milvus
小二·40 分钟前
RAG + 向量数据库实战:ChromaDB / Milvus / FAISS 选型与性能横评
数据库·milvus·faiss
矜持的左手1 小时前
电子小白的枕边书:电子学(The Art of Electronics)
数据库·restful
吴声子夜歌1 小时前
Redis 5.x——布隆过滤器
数据库·redis·缓存
蓝天下的守望者2 小时前
svt_apb_if里的宏定义问题
运维·服务器·数据库
上海云盾-小余2 小时前
网站频繁遭遇 SQL 注入溯源与原生漏洞修复全流程总结
数据库·sql
数据库小学妹2 小时前
国家区域医疗中心国产化改造实战:数据库选型、跨院区数据互通与踩坑经验
数据库·国产数据库·数据库选型·医疗信息化·信创数据库·医疗信创
AllData公司负责人3 小时前
数据库同步平台|AIIData数据中台实现OceanBase、达梦数据库、OpenGauss、人大金仓、Hive、TDengine 一键接入Doris
大数据·数据库·hive·mysql·oceanbase·tdengine
2603_954708314 小时前
全维度容错设计,打造微电网安全运行屏障
服务器·网络·数据库·人工智能·分布式·安全