首页 > 数据库 >Redis面试二

Redis面试二

时间:2023-07-16 20:01:56浏览次数:32  
标签:缓存 数据 数据库 Redis 面试 实例 Memcached

1、有MySQL不就用了吗?为什么要用Redis这种新的数据库?

主要是因为Redis具备高性能和高并发的两种特性。

高性能:假如用户第一次访问数据库中的某些数据。这个过程比较慢,因为是从硬盘上读取的。该用户访问的数据缓存中,这样下一次再访问这些数据的时候就可以直接从获取了。操作缓存就是直接操作内存,所以速度相当快。如果数据库中的对应数据改变的之后,同步改变缓存中相应的数据即可!

高并发:直接操作缓存能够承受的请求是远远大于直接访问数据库的,所以我们可以考虑把数据库中的部分数据转移到缓存中去,这样用户的一部分请求会直接到缓存这样而不用经过数据库。

2、C++中Map也是一种缓存数据结构,为什么不用Map,而不选择Redis做缓存?

缓存分为本地缓存和分布式缓存

C++语言为例,STL自带的容器map来实现缓存,但只能实现本地缓存,它最主要的特点就是轻量以及快速,但是生命周期随着程序的销毁而结束,并且在多实例的情况下,每个实例都需要各自保存一份缓存,缓存不具有一致性。

使用Redis或Memcached之类的称为分布式缓存,在多实例的情况下,各实例共享一份缓存数据,缓存具有一致性。使用Redis或Memcached优点所在,但它也有缺点,那就是需要保持Redis或者Memcached服务的高可用,整个程序架构上比较复杂。

3、Redis比Memcached的优势在哪里?

  1. Memcached所有的值均是简单字符串,Redis作为其替代者,支持更加丰富的数据类型。
  2. Redis的速度比Memcached快很多
  3. Redis可以持久化保存数据

4、单线程Redis为什么这么快?

原因有三:

  1. Redis的全部操作都是春内存的操作;
  2. Redis采用单线程,有效的避免了频繁的上下文切换;
  3. 采用了非阻塞I/O多路复用。


标签:缓存,数据,数据库,Redis,面试,实例,Memcached
From: https://blog.51cto.com/u_14834110/6739606

相关文章

  • window版redis设置密码后不生效
    背景环境winserver2012,redis-x64-3.0.504,java1.8由于历史遗留原因,部分老软件是部署在winserver上,尽着能不动就不动的原则,一直保留至今,软件也一直正常运行,但是最近机器扛不住了,只好迁移问题reids虽然在配置文件中配置了requirepass密码,但是一直不生效,即使redis.windows.conf......
  • #yyds干货盘点# LeetCode程序员面试金典:分数到小数
    题目:给定两个整数,分别表示分数的分子 numerator和分母denominator,以字符串形式返回小数。如果小数部分为循环小数,则将循环的部分括在括号内。如果存在多个答案,只需返回任意一个。对于所有给定的输入,保证答案字符串的长度小于104。 示例1:输入:numerator=1,denominator......
  • redisshake
    如何实现RedisShake简介在开始介绍如何实现RedisShake之前,我们先来了解一下RedisShake是什么。RedisShake是一个用于在Redis之间进行数据迁移和同步的工具。它可以将一个Redis实例的数据迁移到另一个Redis实例,同时还支持增量同步。本文将指导你如何使用RedisShake......
  • redisTemplate 工具类
    RedisTemplate工具类简介Redis是一个基于内存的高性能键值存储数据库,它支持多种数据结构,如字符串、列表、哈希、集合等。在Java开发中,我们可以使用SpringDataRedis来操作Redis数据库。RedisTemplate是SpringDataRedis提供的一个核心类,用于简化Redis的操作。RedisTemplate提......
  • redisCluster 命令
    RedisCluster命令详解引言RedisCluster是Redis分布式解决方案的一部分,它支持自动分片(sharding)和故障转移(failover),使得Redis可以在多个节点上进行数据的存储和操作。本文将介绍RedisCluster的常用命令,并给出相应的代码示例。连接到RedisCluster要连接到RedisCluster,我们需......
  • redis6 不使用密码
    如何在Redis6中实现不使用密码作为一名经验丰富的开发者,我很高兴能帮助你解决这个问题。在本文中,我将向你展示如何在Redis6中实现不使用密码的配置,并提供逐步指导和相应的代码示例。步骤概览下面是整个流程的概览,我们将按照这个顺序一步一步进行操作。步骤操作......
  • redis-server CPU 100%
    如何实现"redis-serverCPU100%"介绍在本文中,我将指导你如何通过一系列步骤来实现"redis-serverCPU100%"。这个过程可能会导致服务器负载升高,因此请谨慎操作,并确保你在实验环境中进行。整体流程在下面的表格中,我将列出实现这个目标的步骤和对应的代码:步骤描述1......
  • redis-cli查看集群信息
    Redis-CLI查看集群信息Redis是一种高性能的内存数据库,广泛用于缓存、消息队列和数据存储等场景。Redis集群是Redis的一种分布式部署方式,能够提供高可用性和可扩展性。为了管理和监控Redis集群,我们可以使用Redis-CLI提供的命令来查看集群信息。Redis-CLI简介Redis-CLI是Redis自带......
  • redis 怎么通过key的获取时间范围查询
    Redis通过Key的时间范围查询方案Redis是一种高性能的内存键值存储数据库,它提供了丰富的数据结构和功能。在实际应用中,我们经常需要根据key的时间范围查询数据,以满足不同的业务需求。本文将介绍如何使用Redis进行时间范围查询,并提供一些代码示例来解决具体的问题。问题描述假设我......
  • redis 修改key名称
    Redis修改key名称的流程为了帮助你理解如何在Redis中修改key的名称,我将为你提供详细的步骤和示例代码。下面是整个流程的概览:连接到Redis服务器检查原始key是否存在获取原始key的值使用新的key名称创建一个新的键值对删除原始key检查新的key是否存在获......