首页 > 数据库 >redis 面试

redis 面试

时间:2023-06-10 23:01:11浏览次数:36  
标签:io 删除 epoll redis 面试 key 多路复用

为什么快 

1。 纯内存存储, io多路复用技术(非阻塞io 使用epoll作为io多路复用技术的实现,加上redis 自身的事件处理模型,将epoll中的连接 读写 关闭都转换为事件, 不在网咯io上面浪费)  单线程架构

大key 

存放的时候根据业务判断可以例如一个大对象拆分为多个小的然后用哈希存储, 还有压缩,  然后删除的话也要先逻辑删除,改名字 然后让客户端没法查询到这个key,在渐进式的删除 、ltrim

2.可以unlink 异步的删除,他会自动的改成逻辑删除,隐藏key就没法查询到了, 然后等待空闲的时候删除

3. 可以改自动过期的配置,例如惰性删除,最大内存删除

 

 

keys*

不允许全量查找, 要用scan来渐进式的处理 

set导致过期事件删除

 

 

 

优化

 

标签:io,删除,epoll,redis,面试,key,多路复用
From: https://www.cnblogs.com/ZhangZiXue/p/17472145.html

相关文章

  • MLIR面试题
    1、请简要解释MLIR的概念和用途,并说明MLIR在编译器领域中的重要性。MLIR(Multi-LevelIntermediateRepresentation)是一种多级中间表示语言,提供灵活、可扩展和可优化的编译器基础设施。MLIR的主要目标是为不同的编程语言、领域专用语言(DSL)和编译器优化提供统一的中间表示框架。ML......
  • Redis数据结构:高频面试题及解析
    概述Redis是速度非常快的非关系型(NoSQL)内存键值数据库,可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合、散列表、有序集合。Redis支持很多特性,例如将内存中的数据持久化到硬盘中,使用复制来扩展读性能,使用分片来扩展写性能......
  • Redis数据结构--SDS动态字符串
    Redis中保存的key是字符串,value往往是字符串或者字符串的集合,但是redis并没有直接使用c语言中的字符串原因在于:1.获取字符串长度需要通过运算2.非二进制安全3.不可修改SDSstructsdshdr{//记录buf数组中使用字节的数量//等于SDS所保存字符串的长度......
  • node.js详细介绍,node.js常用面试题
    Node.js是一个基于ChromeV8引擎的JavaScript运行时,可以让JavaScript在服务器端运行,实现了JavaScript的后端开发能力。Node.js采用事件驱动、非阻塞I/O模型,可以处理大量并发连接,适合构建高性能、可扩展的网络应用程序。以下是一些常见的Node.js面试题:1.什么是No......
  • Redis数据结构:高频面试题及解析
    概述Redis是速度非常快的非关系型(NoSQL)内存键值数据库,可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合、散列表、有序集合。Redis支持很多特性,例如将内存中的数据持久化到硬盘中,使用复制来扩展读性能,使用分片来扩展写性......
  • Kafka面试题
    kafka都有哪些特点?高吞吐量,低延迟可以热扩展并发度高具有容错性(挂的只剩1台也能正常跑)可靠性高在哪些场景下会选择kafka?kafka的一些应用日志收集:一个公司可以用kafka可以收集各种服务的log,通过kafka以统一接口服务的方式开放给各种consumer,例如hadoop、HBase、Solr......
  • 面试记录
    1.面向对象和面向过程的区别,面向对象的三个特性,并解释2.C++和python的区别编译型解释型C++是一种静态的语言,需要在编译时确定变量类型,代码段用大括号分割,语句结尾用分号,相比较,python是一种动态语言,可以在运行时确定变量类型,采用缩进标志代码块,语句结尾不需要有分号。内存管理:p......
  • 代码随想录算法训练营第四天|24. 两两交换链表中的节点 , 19.删除链表的倒数第N个节点
    24.两两交换链表中的节点 个人感觉这个不太难,刚开始打算用步进值为2,来搞,但是没有想到链表应该是怎么样的,原来可以直接用: 1cur=cur->next->next 学到了,这是我自己写的代码:1ListNode*MyLinkedList::swapPairs(ListNode*head)2{3ListNode*dummyHead=new......
  • redis集群部署(运维笔记)
    Redis是一个高性能的NoSQL数据库,由于其高性能和可靠性,越来越多的企业开始使用Redis。在生产环境中,Redis集群是必不可少的,因为它可以提供高可用性和可扩展性。本文将介绍如何在Linux环境下部署Redis集群。1.安装Redis首先,需要在每个节点上安装Redis。可以使用以下命令从Redis官方......
  • redis通用命令及其五种基本数据结构
    Redis通用命令介绍:KEYS:查看符合模版的所有key,DEL:删除一个指定的KEYEXISTS:判断KEY是否存在EXPIRE:给一个key设置有效期,有效期到期时该KEY会自动删除TTL:查看一个key到剩余有效期示例:127.0.0.1:6379>existstest_key(integer)1127.0.0.1:6379>expire......