redis问题汇总

文章目录

    • 一.redis的优点
      • 二.redis的数据结构
      • 三.redis分布式锁是怎么回事?
      • 四.redis里面有1亿个key,其中有10w个key是以某个固定前缀开头的,如何将他们全部找出来?
      • 五.如何使用redis作异步队列
      • 六.如果有大量的key需要设置同一过期时间,一般需要注意什么?
      • 七.redis如何做持久化?
      • 八.pipline有什么好处?
      • 九.redis同步机制了解吗?
      • 十.是否使用过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进行分片存储。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/109013.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ —— Tinyxml2在Vs2017下相关使用2(较文1更复杂,附源码)

相关链接 C —— Tinyxml2在Vs2017下相关使用1(附源码) tinyxml2简介 TinyXML2是一个简单,小巧,高效,CXML解析器,可以很容易地集成到其他程序中。TinyXML-2解析一个XML文档,并从中构建一个 可以…

基于Scrapyd与Gerapy部署scrapy爬虫方案【可用于分布式爬虫部署】

scrapyd部署爬虫 Scrapyd 是一个基于 Scrapy 的开源项目,它提供了一个简单的方式来部署、运行和监控 Scrapy 爬虫。它是一个用于集成 Scrapy 爬虫到分布式架构中的工具,允许您在分布式环境中运行爬虫,并提供了一组 Web API,用于管…

大模型LLM相关面试题整理-训练集-训练经验-微调

3 大模型(LLMs)微调 3.1 如果想要在某个模型基础上做全参数微调,究竟需要多少显存? 要确定全参数微调所需的显存量,需要考虑以下几个因素: 模型的大小:模型的大小是指模型参数的数量。通常&…

Spring()

一、导学 二、 1.入门程序 spring快照版本是最新的版本&#xff0c;未发布。需要用到<repository></> 下面这个不需要配置仓库&#xff0c;直接写在依赖中就行 引入spring相关依赖 <?xml version"1.0" encoding"UTF-8"?> <proje…

(Python) Python中三种时间格式的转换方法

1. 时间元组 1.1. 时间元组和时间戳的互相转化 import time,datetime # 获取当前时间的时间元组 t time.localtime() print(t) # 时间元组转时间戳 timestamp time.mktime(t) print(timestamp) # time.struct_time(tm_year2019, tm_mon10, tm_mday23, tm_hour23, tm_min15,…

中国移动集采120万部,助推国产5G赶超iPhone15

近期媒体纷纷传出消息指中国移动将大规模集采&#xff0c;预计将采购国产5G手机120万台&#xff0c;加上另外两家运营商的集采数量&#xff0c;估计集采数量可能达到300万部&#xff0c;如此将有助于它在国内高端手机市场赶超苹果。 国产5G手机在8月底突然上市&#xff0c;获益…

python+pytest接口自动化 —— 参数关联

什么是参数关联&#xff1f; 参数关联&#xff0c;也叫接口关联&#xff0c;即接口之间存在参数的联系或依赖。在完成某一功能业务时&#xff0c;有时需要按顺序请求多个接口&#xff0c;此时在某些接口之间可能会存在关联关系。 比如&#xff1a;B接口的某个或某些请求参数是…

攻防演练蓝队|Windows应急响应入侵排查

文章目录 日志分析web日志windows系统日志 文件排查进程排查新增、隐藏账号排查启动项/服务/计划任务排查工具 日志分析 web日志 dirpro扫描目录&#xff0c;sqlmap扫描dvwa Python dirpro -u http://192.168.52.129 -b sqlmap -u "http://192.168.52.129/dvwa/vulnera…

了解容器运行时安全:保护你的容器应用

前言 容器是一种虚拟化技术&#xff0c;用于封装和运行应用程序及其依赖项&#xff0c;以便在不同的计算环境中保持一致性和可移植性。自2013年容器诞生至今&#xff0c;容器Docker镜像的下载量超20亿&#xff0c;虽然容器行业发展如火如荼&#xff0c;但是其安全风险却不容乐…

input的一些输入限制

1、input输入框只能输入正整数和0 <el-input v-model"value"onkeyup"value(value.replace(/\D/g,)?:parseInt(value))"placeholder"请输入设备数量" /> 1-1、只能输入大于0的正整数 valuevalue.replace(/^0|[^0-9]/g, ) 2、input输入…

Tips linux如何获取当前连接的ssh用户信息

linux ubuntu debian如何获取当前连接的ssh用户信息 这里需要用到一个常用的网络工具netstat&#xff0c;如果没有这个软件可以通过下边的命令安装&#xff1a; sudo apt-get install net-tools安装完成后通过下边的指令获取ssh所有连接用户&#xff1a; netstat -al|grep s…

EKP接口开发Webservice服务和Restservice服务以及定时任务Demo

继承com.landray.kmss.sys.webservice2.interfaces.ISysWebservice&#xff0c;同时在接口上使用WebService注解将其标识为WebService接口 package com.landray.kmss.third.notify.webservice;import com.alibaba.fastjson.JSONObject; import com.landray.kmss.sys.webservic…

杭电oj--计算两点间的距离

Problem Description 输入两点坐标&#xff08;X1,Y1&#xff09;,&#xff08;X2,Y2&#xff09;,计算并输出两点间的距离。 Input 输入数据有多组&#xff0c;每组占一行&#xff0c;由4个实数组成&#xff0c;分别表示x1,y1,x2,y2,数据之间用空格隔开。 Output 对于每组输…

自动存储、静态存储和动态存储

目录 1.自动存储 2.静态存储 3.动态存储&#xff08;自由存储空间free store或堆heap&#xff09; 4.线程存储&#xff08;C11新增&#xff09; 根据用于分配内存的方法&#xff0c;C有3种管理数据内存的方式&#xff1a; 1.自动存储 在函数内部定义的常规变量使用自动存…

Golang 结构化日志包 log/slog 详解(六):slog.Record

上一篇文章讲解了 log/slog 包中的 LogValuer 和日志记录函数的正确包装方法&#xff0c;本文详细讲解一下 slog.Record 结构体的使用方法和需要注意的点。 slog.Record Record 类型用来保存日志事件的信息&#xff0c;定义如下&#xff1a; type Record struct {Time time.…

【Yarn】清除Yarn的缓存,更新Yarn本身、更新项目的依赖项

要清除Yarn的缓存&#xff0c;可以运行以下命令&#xff1a; yarn cache clean这将清除Yarn的缓存目录。 要更新Yarn本身&#xff0c;可以运行以下命令&#xff1a; yarn self-update这将下载并安装最新版本的Yarn。 如果要更新项目的依赖项&#xff0c;可以运行以下命令&a…

学习开发一个RISC-V上的操作系统(汪辰老师) — 一次RV32I加法指令的反汇编

前言 &#xff08;1&#xff09;此系列文章是跟着汪辰老师的RISC-V课程所记录的学习笔记。 &#xff08;2&#xff09;该课程相关代码gitee链接&#xff1b; &#xff08;3&#xff09;PLCT实验室实习生长期招聘&#xff1a;招聘信息链接 前置知识 RISC-V 汇编指令编码格式 &a…

利用服务器打造创新的在线社区

在这个数字化时代&#xff0c;服务器是实现创意项目的关键工具之一。虽然有许多用途&#xff0c;但其中最引人注目的是将服务器用于构建创新的在线社区。 为什么选择在线社区&#xff1f; 在线社区是连接人们、促进互动和分享知识的强大工具。它们可以围绕共同的兴趣、目标或…

AFL安全漏洞挖掘

安全之安全(security)博客目录导读 ATF(TF-A)/OPTEE之FUZZ安全漏洞挖掘汇总 目录 一、AFL简介 二、AFL的安装 三、代码示例及种子语料库 四、AFL插桩编译 五、AFL运行及测试 六、AFL结果分析 一、AFL简介 模糊测试&#xff08;Fuzzing&#xff09;技术作为漏洞挖掘最有…