一文带你了解什么是redis

这篇文章我来简单介绍它的发展与使用,所以就不阐述更高阶的知识了(事务,锁,集群),主要是为后面redis的使用来做铺垫

一、web的发展

谈到为什么使用redis不得不说web的发展

  1. 单机
    一般的单机系统都可以承受几百到千级别的QPS,所以一般的官网,管理系统都采用单机部署,不需要采取任何措施都可以承受用户的访问。

  2. 缓存中间件的引入

    但是随着互联网的发展,以及一些特殊的需求的出现,比如:秒杀,千万级数据变动等一些需求的出现,增加了系统的负载,一般的系统容易出现连接池满,或者响应时间过长导致无法满足业务要求,这个时候中间件的出现就很好的解决了这个问题。

    举两个例子

    • 假如系统中有2千万用户信息,用户信息基本固定,一旦录入很少变动,那么你每次加载所有用户信息时,如果都要请求数据库,数据库编译并执行你的查询语句,这样效率就会低下很多,针对这种信息不经常变动并且数据量。
    • 在比如刚发布一件商品的时候,用户大量点击造成请求徒增,如果直接请求数据库,就会可能导致数据库宕机。

    这个时候,如果在数据库与请求之间增加一层缓存,那么就能很好的避免这样的问题产生。

终于通过不断的探索,redis的产生完美解决上述的要求,下面我会详细讲解redis的使用。

  1. 集群
    发展到如今,淘宝每年的双十一每秒钟万级别的QPS,单靠一般的中间件也已很难应对。
    这个时候只能靠堆叠产品来进行横向扩展,下面我放一张图来供大家理解。
    redis集群示意图
    它将所有请求进行分配让后通过轮询来将请求分派给各个redis中,用于环节服务器压力。如果想详细了解后续实现原理可以关注我【dog】,会继续讲解

二、redis介绍

先上一段网上的介绍

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

简单一点来说呢它是一个高性能的存储系统

redis的高性能

为什么说它是高性能呢?

  1. 基于内存实现

    它与其他的数据库相比较,不需要从磁盘中读取到内存中,这样就大大的减少了I/O次数

  2. 特殊的线程模型
    非阻塞的I/O多路复用模型

  3. 单线程
    redis的单线程避免了线程之间切换产生的消耗

常用数据结构

string

string是最基本的类型,可以理解成与memcached一模一样的类型,一个key对应一个value

string是一个二进制安全的,意味着redis的String可以包含任意的数据包含图片

结构(动态字符串):类似java的arrayList

list

list列表是简单的字符串列表,按照顺序插入顺序
结构(快速链表):即为双向链表,并且链表中的每一个节点是一个压缩链表

下面我引用一张快速链表的图
快速链表

set

set是无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
结构(hash表):它是一个value为null的hash表

zset

 zset和set一样也是String类型元素的集合,且不允许重复的成员
结构:跳表

跳表
有序的多层双向链表组成,包含所有元素,当要查询指定元素时,从上向下可实现二分查找

hash

hash是一个String类型的field和value的映射表,即键值对的集合,hash特别适合存储对象
结构:主要为hash表如果v过长会使用拉链法

hash适合存储user对象

三、使用场景

缓存

借助redis高性能的key-value存储,可将用户登录状态保存到redis中。

排行榜

利用zset,进行存储以实现排行榜功能。

社交列表

比如使用Sets结构存储关注列表、收藏列表、点赞列表等。

四、总结

以上就是redis的基本入门了,后续我会根据上述的知识针对redis做具体的功能实现。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

远方的雁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值