进大厂必问的高频java高级面试题的总结

  1,为什么要用redis,redis集群怎么做的,redis如何实现负载均衡,Redis雪崩、穿透、热点key等优化

      用redis目的很简单,快,基于内存的,比读盘速度快出不止一个量级;其次设计上减轻后台压力,而且相比其他nosql产品,支持更多的数据类型,可以持久化,而且在某些场景下可以当队列来使用,非常优秀。Redis的内存结构作为扩展内容自行了解一下。

       负载均衡,一般有几种方案,简单的,通过客户端分片,优势是服务端redis相互无关联,单例服务器,容易线性扩展。客户端采用哈希算法将Redis数据的key进行散列,通过hash函数,特定的key会映射到特定的Redis节点上。

      第二种,官方的redis cluster,通过sharding(分片)进行数据共享,这个方案官方推出时间有限,目前应用并不广泛,可以先了解下。一个node就是一个redis服务器,整个集群有一个slot(插槽)的概念,一共有16383个slot(2^14),需要为每个节点分配负责的slot,在存取数据的时候,redis会用key根据crc16算法算出slot的位置,

posted @ 2019-10-16 23:51  jason的java世界  阅读(35)  评论(0编辑  收藏  举报