redis一般用来干嘛?

数据缓存

“redis是一个单线程的NoSQL数据库,主要用来做数据缓存,一般大型网站的应用和数据库之间的那一层就是Redis。

前言

redis在面试中也是经常被问到的技术点,但运维的面试和开发的不同,运维最多问这几个问题(以三点工作经验的运维为例)

  1. redis你们主要用来做什么?

  2. 你们的redis主要用来存储哪些数据?

  3. redis 持久化怎么做的?

  4. redis的架构怎么做的?

看吧,连redis缓存雪崩,击穿,穿透都不会问,更不用说redis的基础命令了。今天我们主要来讨论前两个,redis主要用来做什么以及主要缓存哪些数据

毕竟redis还是开发用的多,当然作为一个优秀的运维,还是要了解下redis相关的知识,万一开发也不懂,你可以教教他嘛。

redis的使用场景

  • 分布式锁(类似zookeeper,但是又比zookeeper弱)

  • 消息通知 (类似于kafka,但是比kafka弱)

  • 做缓存服务 ,读多写少的场景(类似于memcache,但有持久化)

  • 统计网站访问量,当前在线人数

  • 统计网站所有的独立IP

  • 利用好友交集推荐好友

  • 缓存电商网站初始化页面

  • 热点数据:新闻的实时热点,微博热搜,需要频繁更新的热点数据。

redis有哪些数据类型

  • String

  • Hash (用来存储用户的ID,昵称,头像,积分)

  • List :反向查找和遍历,reids分页

  • set :当你存储一个列表数据,又不希望出现重复数据,可以使用这个

  • sort set : 按照某个权重进行排序,比如通过点击数做出排行榜的数据应用

游戏服务器用reids缓存哪些数据

  • 玩家等级的排名,金钱的排名,战斗力的排名,排行榜实时刷新

  • 多个服务器之间通过reids来交换数据,发送事件

  • 瞬间变换的数据,比如金钱,经验,以及玩家完成任务的ID集合

  • 玩家的活动数据

电商服务器redis缓存

  • 不需要实时更新但及其消耗数据库的数据,比如网站首页商品的销售量排行榜,热搜商品。

  • 需要实时更新,但数据更新频率不高的数据

  • 每次获取这些数据都需要经过复杂的处理逻辑的数据,比如生成报表

什么是缓存击穿

比如一个游戏服务器,reids缓存了很多玩家的活动数据,这这些玩家很多已经长时间未登陆了,redis有过期删除机制,这些玩家的活跃数据已经过期,所以从redis中删除了。也就是用户如果又突然登陆了是需要到数据库里读取数据,然后在缓存到redis的。这一天运营搞了个活动,导致这一批过期用户都回来了,这些用户的活动数据就需要从数据库拉取,因为太多导致数据库超载。这就是缓存击穿。

解决方案,就是把过期时间设置的更长一点,并且对数据库的操作添加限流。

几个相关的名词

  1. 失效:应用程序先从cache取数据,没有得到,则从数据库中取数据,成功后,放到缓存中

  2. 命中:应用程序从cache中取数据,取到后返回。

  3. 更新:先把数据存到数据库中,成功后,再让缓存失效

总结

对于面试来说,这些就足够了,如果要深入了解,建议买一个本书查看,不过作为运维知道怎么维护就可以了,业务逻辑和使用都是开发在做,如果后期有做架构师的打算,那先学编程在学redis.

面试官:你们的redis主要用来做什么?相关推荐

  1. Redis综述篇:与面试官彻夜长谈Redis缓存、持久化、淘汰机制、哨兵、集群底层原理!...

    点击上方关注 "终端研发部" 设为"星标",和你一起掌握更多数据库知识 于哥你好,最近面试挺多的,尤其是在问到java面试题,Redis被问的特别多,比如Red ...

  2. 《吊打面试官》系列-Redis常见面试题

    前言 Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难. 作为一个在互联网公司面一次拿一次Offer的面霸,打败了无数竞 ...

  3. redis怎么修改_面试官问我Redis事务,还问我有哪些实现方式

    ❝ 「第12期」 距离大叔的80期小目标还有68期,今天大叔要跟大家分享的内容是 -- Reids中的事务.同样,这也是redis中重要指数为四颗星的必备基础知识点.下面一起来了解一下吧. ❞ 相信大 ...

  4. 《吊打面试官》系列-Redis基础

    你知道的越多,你不知道的越多 前言 Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难.作为一个在互联网公司面一次拿一次o ...

  5. 面试官问:Redis变慢了,你会怎么排查?

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! Redis作为内存数据库,拥有非常高的性能,单个实例的QP ...

  6. redis 删除key的命令_面试官问:Redis变慢了,你会怎么排查?

    Redis作为内存数据库,拥有非常高的性能,单个实例的QPS能够达到10W左右.但我们在使用Redis时,经常时不时会出现访问延迟很大的情况,如果你不知道Redis的内部实现原理,在排查问题时就会一头 ...

  7. redis 亿级查询速度_吊打面试官系列:Redis 性能优化的 13 条军规大全

    我的官方群点击此处. 1.缩短键值对的存储长度 键值对的长度是和性能成反比的,比如我们来做一组写入数据的性能测试,执行结果如下: 从以上数据可以看出,在 key 不变的情况下,value 值越大操作效 ...

  8. 面试官:为何Redis使用跳表而非红黑树实现SortedSet?

    知道跳表(Skip List)是在看关于Redis的书的时候,Redis中的有序集合使用了跳表数据结构.接着就查了一些博客,来学习一下跳表.后面会使用Java代码来简单实现跳表. 什么是跳表 跳表由W ...

  9. 阅文java面试_面试官:说说Redis的Hash底层 我:......(来自阅文的面试题)

    redis源码分析系列文章 前言 hello,各位小可爱们,又见面了.今天这篇文章来自去年面试阅文的面试题,结果被虐了.这一part不说了,下次专门开一篇,写下我面试被虐的名场面,尴尬的不行,全程尬聊 ...

  10. 面试官:谈谈Redis缓存和MySQL数据一致性问题

    前言 对于Web来说,用户量和访问量增一定程度上推动项目技术和架构的更迭和进步.可能会有以下的一些状况: 页面并发量和访问量并不多,MySQL足以支撑自己逻辑业务的发展.那么其实可以不加缓存.最多对静 ...

最新文章

  1. 【HTTP协议】超详细的HTTP协议详解
  2. fileinputstream java_Java FileInputStream close()方法
  3. postman 发送json请求
  4. html输入支付密码样式,基于JS实现类似支付宝支付密码输入框
  5. C++静态库与动态库(转)
  6. 计算机网络复习题大全(各种题型)
  7. html5 dom api,HTML5 DOM File API
  8. Java经典算法题(一,kafka权威指南百度网盘
  9. 迅雷Chrome插件引发的Uncaught ReferenceError: xl_chrome_menu is not defined
  10. android 音效均衡器,App+1 | 不懂均衡器调校也能量身定制,无需折腾的 Android 音效提升工具...
  11. oppor11点击Android,OPPO R11怎么网络共享?OPPO R11三种共享网络设置教程
  12. 发现数字财富的秘密之三:60分钟搞清楚数字技术ABC|链塔智库
  13. 计算机专业毕业答辩ppt优秀范例,毕业论文答辩PPT模板优秀范例课件.ppt
  14. 四象限法推导lm曲线_数据分析四象限法详解
  15. 关于联通IPTV盒子和光猫之间接无线路由器
  16. 2016年软考程序员模拟预测习题20题
  17. JMeter 图片上传接口进行压力测试
  18. 盘复分支语句和循环语句的那些知识
  19. java翁恺MOOC每周编程题
  20. 【ArcGIS|空间分析】空间分析准备流程

热门文章

  1. 什么是函数指针 ? 什么是指针函数? int (*P)( ) 和int *p()有什么区别
  2. 全球四大会计师事务所
  3. c语言闰月的计算方法,如何计算闰月如何用计算机编程? 爱问知识人
  4. 如何实现chrome谷歌浏览器多开(独立环境 独立cookie)
  5. 【京东笔试题】熊猫吃竹子,回溯
  6. 怎么缩小gif动图的体积?三步快速压缩gif体积
  7. vue ie8 兼容方案
  8. Lattice diamond 编程时工具报出 ID错误问题的解决
  9. springboot validation详解
  10. 单片机、ARM、DSP、FPGA区别与应用领域