• redis面试题


    1.什么是redis?

       Redis 是一个基于内存的高性能key-value数据库。

    2.Reids的特点  

       01.Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。

       02.Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据结构,此外单个value的最大限制是1GB,不像 memcached只能保存1MB的数据,因此Redis可以用来实现很多有用的功能,比方说用他的List来做FIFO双向链表,实现一个轻量级的高性 能消息队列服务,用他的Set可以做高性能的tag系统等等。另外Redis也可以对存入的Key-Value设置expire时间,因此也可以被当作一 个功能加强版的memcached来用。

       03.Redis的主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。

    3.redis的优点?   

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

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

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

               (3) redis可以持久化其数据

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

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

    6.为何用Redis而不用map做缓存

    01.Redis 可以用几十 G 内存来做缓存,Map 不行,一般 JVM 也就分几个 G 数据就够大了

    02.Redis 的缓存可以持久化,Map 是内存对象,程序一重启数据就没了

    03.Redis 可以实现分布式的缓存,Map 只能存在创建它的程序里

    04.Redis 可以处理每秒百万级的并发,是专业的缓存服务,Map 只是一个普通的对象

    05.Redis 缓存有过期机制,Map 本身无此功能

    06.Redis 有丰富的 API,Map 就简单太多了

     07.redis 数据可持久化保存,有些缓存你想重启程序后还能继续使用,那么map实现不了

    08.redis 可以实现分布式部署,只要涉及到多台多进程啥的,map就实现不了

    09.redis 有很多数据结构,方便操作,比如 hash set list sort-set等,在某些场景下操作起来比map方便

    7.定时任务(待定)

  • 相关阅读:
    python从zk获取连接并测试dubbo接口
    利用python脚本和telnet调试dubbo接口
    python制造有序中文json串的方法
    unittest用pycharm执行报错
    安装jenkins时无法解析主机:www.jenkins.io
    mui 左右滑动效果
    mui 日期控件的用法
    sql 不同where下的统计
    使用EF关于分页查询时遇到的一点疑问
    css按钮定位在div底部
  • 原文地址:https://www.cnblogs.com/lyb0103/p/9593333.html
Copyright © 2020-2023  润新知