「进击Redis」一、初识Redis

遇见

 依稀记得那年还是个刚刚入行的少年、那时头发还是那么浓密、那时还没有格子寸衫...,想到以前那浓密的毛发,眼角总是泛着泪花(别打了,别打了,我写)。
入职后的几天,头顶依稀还有几根头发的好哥哥过来就跟我说,这里有个老项目,你熟悉一下,明天开始接新需求开发。都不给我反驳的余地,那我能怎么办呢,那还用说嘛,萌新三连(好的、好的、好的),像极了我的前领导在领导前的样子(希望不要被他看到吧)。
含着泪打开项目,一个个新的技术扑脑而来,啊,我吐了。但是当我面向百度输入 Redis 的时,我震惊了,从此头也不回的走上了这条掉头发之路。
反手就是一个 Antirez(Redis 作者)yyds。

初识

 Redis 是一种基于键值对(key-value) 的 NoSQL 数据库,与很多键值对数据库不同的是,Redis 中的值可以是string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)、Bitmaps(位图)、HyperLogLog(基数统计)、GEO(地理信息定位) 等多种数据结构和算法组成,因此 Redis 可以满足很多的应用场景。
而且因为 Redis 所有数据操作都在内存中,所以它的读写性能非常惊人。不仅如此,Redis 还可以将内存的数据利用快照和日志的形式保存到硬盘上,这样在发生类似断电或者机器故障的时候,内存中的数据不会“丢失”。除了上述功能以外,Redis 还提供了键过期、发布订阅、事务、流水线、Lua 脚本等附加功能。

就是它

小故事

 又到了我最喜欢的环节。2008 年,Redis 的作者 antirez(Salvatore Sanfilippo)在开发一个叫 LLOOGG 的网站时,需要实现一个高性能的队列功能,最开始是使用 MySQL 来实现的,但后来发现无论怎么优化 SQL 语句都不能使网站的性能提高上去,再加上自己囊中羞涩,于是他决定自己做一个专属于 LLOOGG 的数据库,这个就是 Redis 的前身。
后来,Salvatore Sanfilippo 将 Redis1.0 的源码开放到 GitHub 上,可能连他自己都没想到,Redis 后来如此受欢迎。

相关链接

官方网站
作者博客
源码地址

特性

1. 读写速度快

 官方给出的数字是读写性能可以达到 10 万/秒,当然这也取决于服务器的配置。
Redis 读写性能高的原因:
1). 基于内存操作。
2). 用 C 语言实现,C 语言实现的程序“距离”操作系统更近,执行速度相对会更快。
3). 使用单线程加上 I/O 多路复用模型,避免了多线程环境下产生的并发竞争问题。
4). 作者自身对源码严格的打磨。代码量较其他数据库来说量很小。

2. 基于键值对存储

 根据 key-value 的映射关系生成类似于字典的功能,比如像 Java(世界上最好的语言,没有之一)中的 Map。
而且 Redis 中的值不仅可以是字符串,还可以是具体的数据结构或者算法

3. 多样化的功能

 除了提供常用的 5 中基础数据类型,还提供以下的功能:
1). 键过期,可以用来实现缓存、分布式锁等。
2). 提供了基础的发布订阅能力,可以用来实现消息系统,但是一般系统都会选择用像 rabbitMQ 专门的消息中间件。
3). 支持 Lua 脚本功能,像 Redisson 分布式锁框架底层用的就是 Lua 脚本来实现的。
4). 支持持久化,Redis 本身是基于内存的,所以提供了 AOF 和 RDB 两种方式来持久化。
5). 支持高可用,Redis 集群模式提供了主从复制、哨兵模式和 cluster 模式,当然主从和哨兵一般是配合使用的。
6). 等等(狗头护脸)....后续都会一个个来的,好哥哥们别急

使用场景

1. 能做什么

1). 缓存,这个功能是绝大多数系统用的主要原因,可以缓存热点数据,分摊数据库压力。
2). 排行榜系统,提供列表和有序集合,可以合理利用这种数据结构实现排行。
3). 计数器应用,比如像统计访问量或者播放量,Redis 天然支持计数功能而且计数的性能也非常好。
4). 社交网络,赞/踩、粉丝、共同好友/喜好、推送、下拉刷新等是社交网站的必备功能,Redis 提供的数据结构可以相对比较容易地实现这些功能。
5). 消息队列系统,基于 Redis 发布订阅,可以实现基础的消息队列功能,不过还是建议用专门的消息中间件。

2. 不能做什么

 Redis 是基于纯内存操作的,虽说现在的内存已经足够便宜,但是数据规模量很大时,使用 redis 存储的话经济成本会很大。另外,如果是基于主从复制来做高可用的话,从库拷贝了主库的全量数据,也就意味着能存储的数据量是有限的。
其次的话,在冷热数据(访问)上来讲,存储热数据可以提高系统的吞吐量,而如果存储冷数据的话就基本上是对于内存的一种浪费。

碎碎念

 在 2020 年的最后一个月,突发萌生了写博客想法。也是经过了一系列的挣扎之后还是决定要坚持写下去。
一方面在写博客的过程中能发现自身对于某个知识点的盲区,加深技术点的理解,提高技术能力的深度。
其次学习、理解一个技术点和把这个技术点通过文字输出反馈出来完全不一样,能很大程度上的提高我的语言表达能力。
最后通过分享能和很多巨佬(后续就叫好哥哥)进行碰撞(思维,肉体打不过啊),每每碰撞后总是醍醐灌顶,一个字那就是妙啊。
然后后续会分享 Redis 这一块的东西,基本就是从 0 到 1 这种,夸张点说就是从入门到精通(诶诶诶,别打脸,别打脸),希望好哥哥们喜欢。
最后的最后,我是娱乐博主,欢迎大家来碰撞(肉弹冲击),冲冲冲......

本期就到这啦,有不对的地方欢迎好哥哥们评论区留言,另外\color{#FF0000}{求关注、求点赞}

下一篇:Redis 安装与配置

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,634评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,951评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,427评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,770评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,835评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,799评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,768评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,544评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,979评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,271评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,427评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,121评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,756评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,375评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,579评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,410评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,315评论 2 352

推荐阅读更多精彩内容

  • 初识 Redis 《 Redis 开发与运维》的学习笔记,希望大家多多指导。 什么是 Redis Redis 的全...
    izerone阅读 368评论 1 2
  • 1.1 资料 ,最好的入门小册子,可以先于一切文档之前看,免费。 作者Antirez的博客,Antirez维护的R...
    JefferyLcm阅读 17,045评论 1 51
  • 本文是我自己在秋招复习时的读书笔记,整理的知识点,也是为了防止忘记,尊重劳动成果,转载注明出处哦!如果你也喜欢,那...
    波波波先森阅读 3,428评论 0 40
  • 一、盛赞Redis 高性能 key-value服务器(官方号称QPS能达到10w级别)支持多种数据结构(strin...
    不二不二熊阅读 196评论 0 0
  • Redis是工作广泛使用的存储中间件, 大部分互联网技术研发人员或多或少接触过它。 然而,在面试过程确发现,很多同...
    StreetlampLiu阅读 240评论 0 1