您现在的位置是:网站首页 / RedisRedis

直面Redis-概念

李先生2021-10-06 203人围观

简介 这是一篇水文,我打算出一系列的Redis文章,来补充和提升自己的技术知识。本篇是开始,是篇废话文章,后续会从Redis的支持的数据类型,使用场景,特性,高可用和高频面试题等方面来介绍Redis,希望在提升自己的同学也能帮助到一些需要的同学

前言

​ 最近又断更了一段时间,实在是太懒了。哈哈有点不太负责了,断了一两个月后才想起我的自由书安安静静的躺了很久了,隔壁的面试怪圈每天都在说今天多少PV,多少UV,进粉多少,取关多少。这都不是我的动力,哈哈。我的动力来着我有颗宠粉的心,虽然我粉丝不多。就像有句诗一样:两情若是久长时,又岂在朝朝暮暮。

​ 写Redis其实是我找不到写的了,我又不没有资源像那些大佬一样“不知道怎么的就想送一台Mac给粉丝”的大气,也没有发贴个美图“国内某美女上门索取源码的后续”的爱好,我就是找不到写的,就是想写点技术相关的文章给大家,【一张正义脸】,哈哈

​ 其实真正的目的是我觉得我的Redis知识该补充补充了,正好在最近工作中有个问题需要依靠Redis来解决,后续会把这个案例给大家详细的讲解出来的。虽然在日常工作中基本上每次对Redis依赖很大,面试中也经常遇到Redis的问题。但是我还是谈不上对Redis熟悉,所以借此机会来写写Redis的文章,抱着对Redis的神秘感,一步一步揭开它神秘的面纱。

什么是Redis?

我呢比较喜欢抄,官网上这么写的。Redis是一种开源的基于内存的数据结构存储,而且是目前已知读写性能最高的键值对数据库,每秒可以10万次读写操作。这里要画下重点了,基于内存的数据结构存储。哪里不懂点哪里哈,我觉得能看这篇文章的你应该都懂基于内存是啥意思吧,我单独讲下数据结构的含义吧

数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合

根据上面的介绍我们大致也知道Redis的用途和使用场景了,Redis支持存储数据结构在计算机内存中,这样的话聪明的你一定想到了数据库对吧,没错Redis可以当数据库来使用。其次它是基于内存的,大家都知道内存最大的特点就是读写速度极快,那么需要读写速度很快的场景是缓存,大多数使用Redis的场景都是用于缓存。在面试时很多开始聊Redis的时候都会问一句,

面试官:你们使用Redis是哪些场景呢?

菜鸟:缓存!

面试官:还有其他场景吗?

菜鸟:没,没,没,脑袋就像拨浪鼓一样左摆右摆,尴尬而不失稳压器的嘿嘿,我们只用于缓存。

其实还有消息队列,计数器,排行榜,分布式锁,延时任务,mybatis缓存等场景,放心后面会一一给大家安排上,免得在面试时遇到上面的问题尴尬的嘿嘿嘿,因为我就是这样的。

Redis特点

​ Redis的特点其实上面也已经提到了,Redis基于内存的存储,那么肯定读写速度是很快的,同时Redis支持字符串、Hash、List、set、sortSet、BitMap、hyperloglogs、geospatial 和流数据结构,这么多的数据结构可以引申出上面很多使用场景。同时Redis还支持事务,但是Redis是关系型数据库的事务不是同一个概念的,redis的事务代表每个命令操作是原子性的,因为Redis的工作线程是单线程的,6.x的版本说Redis支持多线程了其实工作线程也是单线程的,后面会单独来讲解。

下面列举下和另一款内存存储Memcache的对比:

Redis和Memchche对比
Redis和Memchche对比

但是万物都有两面性对吧,同样Redis虽然好处多多但是它也有点缺点的。

  1. 读写速度快是因为内存,但是内存成本还是很高的不适合用于存储大量的数据
  2. 较难横向扩展,不管是主从还是哨兵,所以为了避免这个问题,在配置Redis时尽量预估好集群容量
  • 9 点赞
  • 0 收藏
  • 分享

作品评论

# 本栏推荐

直面Redis-概念