`

redis面试题总结

阅读更多

转自:
http://blog.csdn.net/zdp072/article/details/50991116
http://www.100mian.com/mianshi/dba/37381.html

1. 使用redis有哪些好处?

(1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)
(2) 支持丰富数据类型,支持string,list,set,sorted set,hash
(3) 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行
(4) 丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除

2. redis相比memcached有哪些优势?

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

3. Memcache与Redis的区别都有哪些?

1)、存储方式
Memecache把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小。
Redis有部份存在硬盘上,这样能保证数据的持久性。
2)、数据支持类型
Memcache对数据类型支持相对简单。
Redis有复杂的数据类型。
3)、使用底层模型不同
它们之间底层实现方式 以及与客户端之间通信的应用协议不一样。
Redis直接自己构建了VM 机制 ,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。

4. redis常见性能问题和解决方案:

(1) Master最好不要做任何持久化工作,如RDB内存快照和AOF日志文件
(2) 如果数据比较重要,某个Slave开启AOF备份数据,策略设置为每秒同步一次
(3) 为了主从复制的速度和连接的稳定性,Master和Slave最好在同一个局域网内
(4) 尽量避免在压力很大的主库上增加从库
(5) 主从复制不要用图状结构,用单向链表结构更为稳定,即:Master <- Slave1 <- Slave2 <- Slave3…
这样的结构方便解决单点故障问题,实现Slave对Master的替换。如果Master挂了,可以立刻启用Slave1做Master,其他不变。

5. mySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据

相关知识:redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。redis 提供 6种数据淘汰策略:
volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰
volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰
volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰
allkeys-lru:从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰
allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰
no-enviction(驱逐):禁止驱逐数据

6. 请用Redis和任意语言实现一段恶意登录保护的代码,限制1小时内每用户Id最多只能登录5次。具体登录函数或功能用空函数即可,不用详细写出。

用列表实现:列表中每个元素代表登陆时间,只要最后的第5次登陆时间和现在时间差不超过1小时就禁止登陆.用Python写的代码如下:

#!/usr/bin/env python3
import redis  
import sys  
import time

r = redis.StrictRedis(host=’127.0.0.1′, port=6379, db=0)  
try:  
    id = sys.argv[1]
except:  
    print(‘input argument error’)
    sys.exit(0)

if r.llen(id) >= 5 and time.time() – float(r.lindex(id, 4)) <= 3600:  
    print(“you are forbidden logining”)
else:  
    print(‘you are allowed to login’)
    r.lpush(id, time.time())
    # login_func()
分享到:
评论

相关推荐

    10 redis面试题总结经验.pdf

    ### 10 Redis面试题总结经验 #### 1. 什么是 Redis? Redis 是一款开源的、基于内存的键值(Key-Value)存储系统。它提供了丰富的数据结构支持,能够处理大量的读写请求,每秒可处理超过 10 万次的读写操作。由于...

    redis面试题及答案(上).pdf

    redis面试题总结学习,Redis是开源的(BSD许可)内存数据结构存储,用作数据库,缓存和消息代理。它支持数据结构,例如 字符串,哈希,列表,集合,带范围查询的排序集合,位图,超日志,带有半径查询的流空间索引和...

    最新JAVA面试题总结之Redis.docx

    Redis 面试题总结 Redis 是一个基于内存的高性能 key-value 数据库,具有高性能、支持丰富的数据类型、支持事务、可用于缓存、消息、按 key 设置过期时间等特点。Redis 的主要缺点是数据库容量受到物理内存的限制,...

    2020面试题总结Redis篇.pdf

    ### Redis核心知识点详解 #### 一、Redis的优势 Redis作为一种高性能的键值对存储系统,在IT行业中被广泛应用。它的优势主要包括: 1. **高速访问**:由于数据存储在内存中,Redis提供了类似HashMap的快速访问...

    Redis 面试题 + Redis 高频面试题集锦

    Redis 是一款高性能的键值对数据存储系统,广泛应用于缓存和实时数据存储场景。...总结来说,Redis面试题通常围绕其核心特性和实际应用问题展开,理解并掌握这些知识点对于面试和实际工作都有极大帮助。

    Redis相关面试题总结

    内容概要:本文深入解析了Redis为什么能够保持高速性能及其背后的工作机制,涵盖了内存操作、单线程操作、I/O多路复用技术和Reactor设计模式等多个方面的技术细节。同时还详细介绍了Redis在缓存、全页缓存、队列、...

    Redis面试知识点.pdf

    ### Redis面试知识点详解 #### 1、什么是Redis? Redis是一个完全开源且免费的高性能key-value数据库,遵循BSD许可协议。相较于其他key-value缓存产品,Redis具有以下显著特点: - **支持数据持久化**:能够将内存...

    redis面试题之概述-介绍一下redis.zip

    总结来说,Redis以其高性能、易用性和丰富的数据结构,成为开发者在构建高性能、高并发应用时的重要工具。理解并掌握Redis的工作原理和使用技巧,对于提升系统的整体性能至关重要。在面试中,对Redis的深入理解和...

    redis面试题之单线程.zip

    四、面试题解析 4.1 Redis为何选择单线程模型? 答:Redis选择单线程模型主要是为了简化并发控制,提高性能和可维护性。 4.2 如何优化Redis的并发处理? 答:使用pipeline批量处理命令,通过客户端预加载数据,...

    redis面试题之删除策略.zip

    总结,Redis 的删除策略涉及到多种机制,包括主动和惰性过期、TTL 管理、驱逐策略等。理解这些机制对于优化 Redis 性能和管理内存至关重要。在面试中,掌握这些知识点不仅能展示你对 Redis 的深入理解,也有助于解决...

    Java核心面试知识集-Redis面试题

    ### Java核心面试知识集——Redis面试题解析 #### 一、Redis数据结构相关 ##### 1. Redis支持的数据类型 Redis 提供了多种内置的数据结构,适用于不同的应用场景,包括但不限于以下几种: - **String(字符串)*...

    Redis面试题及答案.pdf

    Redis 面试题及答案 Redis 是一个基于内存的高性能 key-value 数据库,具有出色的性能和多种数据结构支持。下面是 Redis 的一些重要知识点: 1.Redis 的特点:Redis 本质上是一个 Key-Value 类型的内存数据库,...

    redis面试题之运维监控.zip

    在面试中,Redis的运维监控是衡量候选人对系统稳定性、性能优化以及问题排查能力的重要指标。下面我们将深入探讨Redis运维监控相关的知识点。 一、Redis性能监控 1. **内存监控**:Redis主要依赖内存进行数据存储...

    46道史上最全Redis面试题

    ### 总结 Redis 作为一种高性能的键值存储系统,因其独特的内存操作模式和丰富的数据结构支持,在现代应用开发中扮演着极其重要的角色。无论是用于提高应用程序性能,还是构建复杂的数据结构,Redis 都是一个强大而...

    java高级面试篇之redis面试收集总结-62题附答案).docx

    ### Java高级面试篇之Redis面试收集总结 #### 1. 什么是Redis? Redis是一个开源的键值存储系统,它以键值对的方式存储数据,并主要将数据存储在内存中,以便实现快速的数据读写速度。虽然Redis支持持久化机制来...

    10万字总结java面试题和答案(八股文之一)Java面试题指南

    Redis面试题 Memcached面试题 MongoDB面试题 Spring面试题 Spring Boot面试题 Spring Cloud面试题 RabbitMQ面试题 Dubbo 面试题 MyBatis 面试题 ZooKeeper 面试题 数据结构面试题 算法面试题 Elasticsearch 面试题 ...

    redis面试题之应用+持久化.zip

    Redis,全称Remote ...总结来说,Redis的应用广泛且灵活,其持久化机制是保证数据安全的重要手段。了解并掌握RDB和AOF的原理及配置,能够帮助我们更好地应对面试,同时在实际项目中实现高效、稳定的数据管理。

    (2024)Redis,快看看这40道面试题.pdf

    根据给定文件的信息,我们可以提炼出一系列关于Redis的重要知识点,这些知识点...以上就是从给定文档中提取的关键知识点总结。通过对这些知识点的学习和理解,可以帮助开发者更好地掌握 Redis 的核心技术和应用场景。

    Redis面试题和答案(50题).pdf

    ### 总结 通过对Redis的详细介绍,可以看出Redis不仅在性能上表现出色,而且在功能多样性、数据持久化和支持的复杂数据结构等方面都有着明显的优势。对于需要高性能、高可靠性的应用场景而言,Redis是一个理想的...

    Redis 最常见的面试题.pdf

    本文会从这几个方面进行总结常见的面试题: Redis 是什么? Redis 和 Memcached 有什么区别? Redis 的数据持久化机制有哪些? Redis 如何实现高可用性? Redis 的数据结构有哪些?每种数据结构的应用场景是什么? ...

Global site tag (gtag.js) - Google Analytics