码迷,mamicode.com
首页 > 其他好文 > 详细

菜鸟刷面试题(三、Redis篇)

时间:2019-12-16 19:16:27      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:命中   布隆过滤器   redis分布式   菜鸟   比较   sso   本质   开源   情况   

目录:

  • redis是什么?都有哪些使用场景?
  • redis有哪些功能?
  • redis和memecache有什么区别?
  • redis为什么是单线程的?
  • 什么是缓存穿透?怎么解决?
  • redis支持的数据类型有哪些?
  • redis支持的java客户端都有哪些?
  • jedis和 redisson 有哪些区别?
  • 怎么保证缓存和数据库数据的一致性?
  • redis持久化有几种方式?
  • redis怎么实现分布式锁?
  • redis分布式锁有什么缺陷?
  • redis如何做内存优化?
  • redis淘汰策略有哪些?
  • redis常见的性能问题有哪些?该如何解决?

redis是什么?都有哪些使用场景?

1、Redis是一款开源的、基于C语言编写的key value数据库,其数据读写基于内存,性能高。

2、Redis使用场景很多:

  • 可作用于底层DB的缓存层
  • 分布式锁
  • 使用list做热点数据排行
  • GEO做地理位置统计
  • 等等。。。。。。

redis有哪些功能?

数据持久化、事务、发布订阅消息、主从复制、集群、哨兵等等。

redis和memecache有什么区别?

memecache目前仅支持k/v类型的数据存储,而redis支持的存储方式更加丰富

memecache挂掉了数据就没了,redis有持久化策略。

。。。。。。

redis为什么是单线程的?

我们首先要知道Redis是一个高效的key/value数据库,且采用内存读写数据

那么既然是内存读写数据的话单线程的效率肯定是最高的,因为多线程的本质就是CPU模拟出来多个线程的情况,这种模拟出来的线程势必会有上下文切换的消耗,所以对于内存系统来说没有上下文的切换就是最高效的

参考:https://blog.csdn.net/world6/article/details/79381682

什么是缓存穿透?怎么解决?

1、什么是缓存穿透:缓存穿透查询一个根本不存在的数据,导致每次请求都不会命中缓存,请求都进到DB,导致DB压力过大而降低DB吞吐量,严重时可能会让DB宕机;一般是自身业务代码或数据出现问题,或是一个恶意工具、爬虫等造成的。

2、怎么解决:

  • 缓存null值,将那些不可能存在的数据也做一层缓存,如缓存值为null;这样便不会将这些数据命中到DB层了。
  • 布隆过滤器

redis支持的数据类型有哪些?

String、List、Hash、Set、Sorted Set。

可以再细说下编码以及这些数据类型的特性等等。

redis支持的java客户端都有哪些?

Jedis、Redisson、lettuce等等,官方推荐使用Redisson

jedis和redisson有哪些区别?

简介:

  • Jedis:redis的java客户端的实现,提供了比较全面的redis命令支持。
  • Redisson:实现了分布式和可扩展的Java数据结构。

区别:

  • 封装:jedis只是简单封装了redis的api库,它的方法和redis命令类似;redisson不仅封装了redis命令,还封装了更多的数据结构以及锁等功能。
  • 灵活性:jedis对于redisson来说更加灵活。

怎么保证缓存和数据库数据的一致性?

redis持久化有几种方式?

redis怎么实现分布式锁?

redis分布式锁有什么缺陷?

redis如何做内存优化?

redis淘汰策略有哪些?

redis常见的性能问题有哪些?该如何解决?

菜鸟刷面试题(三、Redis篇)

标签:命中   布隆过滤器   redis分布式   菜鸟   比较   sso   本质   开源   情况   

原文地址:https://www.cnblogs.com/bzfsdr/p/12050008.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!