Redis-面试题

一、基础

1、什么是Redis

  • C语言编写,基于key-value存储的nosql开源内存数据库
  • 内存存储、数据结构优化,高性能
  • 一般用于应用和数据库之间的分布式缓存中间件
  • 提供主从复制+哨兵、集群的方式实现高可用,在redis集群中通过hash槽的方式实现数据分片,进一步提升性能和可扩展性

2、Redis的优缺点

  • 优点
    • 读写性能优异
    • 支持数据持久化RDB、AOF
    • 支持事务
    • 数据结构丰富
    • 支持主从复制,主机自动将数据同步至slave,可进行读写分离
    • 高性能(直接操作内存快)、高并发:
  • 缺点
    • 数据库容量受到物理内存限制
    • 在线扩容困难

3、redis与其它缓存

  • redis是分布式缓存

4、redis为什么快

  • 完全基于内存
  • 数据结构简单
  • 采用单线程,避免不必要的上下文切换和竞争,也避免锁问题
  • 采用多路IO复用模型,非阻塞IO

5、redis的应用场景

  • 计数器、缓存、消息队列
  • 分布式锁

6、redis有哪些数据类型

  • String、List、Set、Zset、Hash、Geospatial、Hyperloglog、Bitmap

7、redis持久化

  • 就是把内存数据写道磁盘,防止数据丢失
  • RDB(默认):一定时间将内存数据以快照的形式保存到磁盘,以二进制压缩文件进行存储。
    • 只有dump.rdb文件,方便持久化
    • 容灾性好,文件保存到磁盘
    • 性能最大化,fork子线程来完成写操作,主线程继续处理命令。
    • 比AOF启动效率高
    • 数据安全性低,RDB是间隔一段时间进行持久化,适合数据要求不严谨
  • AOF(日志追加):

你可能感兴趣的:(Redis,java,redis)