Redis从入门到精通 -什么是Redis?

one行feng 2024-02-04 14:31:10

 Redis(Remote Dictionary Server)远程词典服务器是一款遵守BSD协议的开源高性能键值对(Kev-Value)存储数据库,提供了丰富的数据结构,例如Strings、Hashes、Lists、Sets、Sorted Sets等等。数据存储于内存中,支持事务、持久化、LUA脚本、发布/订阅、缓存淘汰、流技术等多种功能特性,而且还提供了主从模式、Redis Sentinel和Redis Cluster集群架构方案。

官网:https://redis.io/

01 Redis 的主流功能与应用

  • 分布式缓存,挡在 MySQL 数据库之前的带刀护卫

    MySQL的数据存储于硬盘,一般用于保证数据的一致性,根据28原则,80%的情况下用户的操作都是查询动作,20%的情况才是写入动作。那我们可以思考一下,查询本身就不会改变数据本身,那为什么一定要在MySQL中查询呢?

    什么地方的读取和写入速度要比硬盘更快呢?肯定是内存,而Redis就是一款将数据存储于内存中的高性能键值对(Kev-Value)存储数据库。

  • 上面这张图,给我们解释了用户查询数据的流程,MySQL完全躲在Redis后面,当有查询数据的请求时,首先看Redis中是否存在数据,如果不存在才到MySQL数据库中进行查询,同时将数据缓存至Redis中,从而使得后续的查询命令能够在Redis中直接获得结果。

     

  • 内存存储和持久化(RDB+AOF),Redis 支持异步将内存中的数据写到硬盘上,同时不影响继续服务

    根据分布式缓存中给出的解释,Redis中查询不到的数据会从MySQL中查询并进行缓存,由于内存中的数据在重启设备后会丢失,Redis存储在内存中的数据也是一样会全部丢失的,这将会给MySQL造成很大的压力,于是Redis就支持将内存中的数据异步缓存至硬盘上,一旦出现上述情况,Redis能够快速恢复。

     

  • 通过高可用架构搭配,预防缓存穿透、击穿和雪崩

    上一节点中我们聊到Redis可能会出现挂掉的情况,此时所有的压力都会直接给到MySQL,试想一下使用内存存储的Redis都挂了,MySQL能不能抗住,如果MySQL也扛不住,是不是意味着,你的网站服务就彻底挂掉了?

    因此,Redis支持从单机、主从、哨兵、集群的高可用架构搭配,从而预防上述情况的出现。

     

  • 支持多种数据结构,使得用户能够基于这些数据类型,快速实现不同的业务逻辑。

    list和set操作,使得Redis能够作为一个很好的消息队列平台来使用,而队列功能就可以实现类似购买限制的效果。

    zset数据类型能够快速实现类似月度销量排行榜、社交APP礼物排行榜、小程序投票排行榜等功能。

     

  • 性能极高,读取速度是110000次/秒,写入速度是81000次/秒

...全文
28 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

227,511

社区成员

发帖
与我相关
我的任务
社区描述
一个人可以走的很快,一群人才能走的更远!
数据库 企业社区
社区管理员
  • Lucifer三思而后行
  • 韬光养晦208
  • 芒果再努力
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

❤️ 添加版主微信:Lucifer-4622 

🎉【数据库交流社区】联合 【摸鱼社区】本周重磅推出【兄弟社区每日打卡】活动 

🎁 新玩法,奖励升级!

数据库交流社区:https://bbs.csdn.net/forums/lucifer-database

摸鱼社区:https://bbs.csdn.net/forums/moyu

新增抽奖池:6本技术书籍 📚 + 每周社区排名奖品 🏅 ,绝对丰厚!

奖品预览可以参考:CSDN社区赞助奖品一览

⭐️ 活动要求:

1、每日 同时在两个社区 打卡贴进行发帖打卡,提交任务

2、同时在两个社区 坚持 7 天打卡 ,将参与到抽奖名单中,这很重要!

3、参加抽奖请先 添加打卡抽奖群,否则无效,加群请添加微信:Lucifer-4622

【社区积分规则】

  • 在社区「发帖」得10积分
  • 内容被管理员「加精」得10积分
  • 点赞他人内容得1积分
  • 评论内容得2积分

社区玩法👇👇👇

试试用AI创作助手写篇文章吧