Java工程师是如何使用Redis的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java工程师是如何使用Redis的?相关的知识,希望对你有一定的参考价值。

参考技术A

redis算是用的最多的key-value型缓存组件了!

因为使用了key-value型,所以存取效率极好,简单来说就类似JAVA中的hashMap,不过是用整个服务器内存来当做map,但是redis的数据可以通过配置指令保存到硬盘(同步保存save,异步保存bgsave)!

redis是单线程模式,这能保证redis中存取的数据库绝对线程安全,同时,因为避免多线程之间切换的开销,redis的存取性能跟使用多线程的memcache在一定程度上旗鼓相当,都非常高的性能,不过redis的value支持G级别的数据,能用来存放大文本等,这是memcache不能做到的。。

为了进一步提升redis的稳定性和存取性能,redis支持集群,具体搭建方式,可参考我之前的一篇回答!

那么redis在实际的开发中,主要用来做什么呢?

1,数据存取:无需多说!

2,加锁:因为redis是单线程的,提供的比如incr,setnx等方法均可以用来当做锁使用!

3,秒杀系统:商品存队列,请求进来进行匹配,然后异步出单即可!

4,计数器:对同一个key的value计数即可!

5,超时问题:比如页面访问超时啥的,页面访问接口的时候持续更新某个设定值,超过某个时间段再访问,则超时!

当然,redis在使用过程中会存在持久化失败,缓存击穿,扩容困难等问题,不过无论如何,redis都是一款最值得用的缓存工具!

使用过程中有任何问题,欢迎大家一起交流,redis还有什么遗漏功能,也请大家补充,谢谢!

面经网易Java工程师面经(二面+HR面)


面经分享




一面
  1. RPC原理,netty原理

  2. hashMap原理

  3. redis缓存回收机制,准备同步,哨兵机制

  4. 统计10分钟内订单的亏损,你会怎么设计

  5. 项目:你做了什么,为什么要这么做,用了什么技术要解决什么问题


二面
  1. 分布式缓存redis原理,zookeeper锁是如何实现的

  2. 分布式缓存读写不一致问题

  3. java线程你怎么使用
  4. 数据库是如何调优的
  5. git rebase命令发生了什么
  6. 讨论项目 

HR面
薪资,为什么要离开,级别

点击下方名片关注我
查看更多大厂面经