Redis是什么?看这一篇就够了!
杰哥的IT之旅
共 4997字,需浏览 10分钟
·
2020-10-28 05:51
公众号关注“杰哥的IT之旅”, 选择“星标”,重磅干货,第一时间送达! 薅起来!当当限时 3 折购书!
来源:https://www.cnblogs.com/powertoolsteam/p/redis.html
公众号关注“杰哥的IT之旅”, 选择“星标”,重磅干货,第一时间送达! 薅起来!当当限时 3 折购书! 来源:https://www.cnblogs.com/powertoolsteam/p/redis.html
引言
低延迟的读写速度:应用快速地反应能极大地提升用户的满意度 支撑海量的数据和流量:对于搜索这样大型应用而言,需要利用PB级别的数据和能应对百万级的流量 大规模集群的管理:系统管理员希望分布式应用能更简单的部署和管理 庞大运营成本的考量:IT部门希望在硬件成本、软件成本和人力成本能够有大幅度地降低
Redis是什么
基于内存运行,性能高效 支持分布式,理论上可以无限扩展 key-value存储系统 开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API
C/S通讯模型 单进程单线程模型 丰富的数据类型 操作具有原子性 持久化 高并发读写 支持lua脚本
github twitter 微博 Stack Overflow 阿里巴巴 百度 美团 搜狐
Redis的应用场景有哪些?
Redis的数据类型及主要特性
String类型:
GET/MGET SET/SETEX/MSET/MSETNX INCR/DECR GETSET DEL
哈希类型:
HGET/HMGET/HGETALL HSET/HMSET/HSETNX HEXISTS/HLEN HKEYS/HDEL HVALS
列表类型:
LPUSH/LPUSHX/LPOP/RPUSH/RPUSHX/RPOP/LINSERT/LSET LINDEX/LRANGE LLEN/LTRIM
集合类型:
SADD/SPOP/SMOVE/SCARD SINTER/SDIFF/SDIFFSTORE/SUNION
顺序集合类型:
ZADD/ZPOP/ZMOVE/ZCARD/ZCOUNT ZINTER/ZDIFF/ZDIFFSTORE/ZUNION
Redis的数据结构
压缩列表是列表键和哈希键的底层实现之一。当一个列表键只包含少量列表项,并且每个列表项要么就是小整数,要么就是长度比较短的字符串,Redis就会使用压缩列表来做列表键的底层实现 整数集合是集合键的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素数量不多时,Redis就会使用整数集合作为集合键的底层实现
简单动态字符串SDS (Simple Dynamic String)
SDS的特点
Redis特性1:事务
命令序列化,按顺序执行 原子性 三阶段: 开始事务 - 命令入队 - 执行事务 命令:MULTI/EXEC/DISCARD
Redis特性2:发布订阅(Pub/Sub)
Pub/sub是一种消息通讯模式 Pub发送消息, Sub接受消息 Redis客户端可以订阅任意数量的频道 “fire and forgot”, 发送即遗忘 命令:Publish/Subscribe/Psubscribe/UnSub
Redis特性3:Stream
Redis 5.0新增 等待消费 消费组(组内竞争) 消费历史数据 FIFO
Redis常见问题解析:击穿
第一次访问 恶意访问不存在的key Key过期
服务器启动时, 提前写入 规范key的命名, 通过中间件拦截 对某些高频访问的Key,设置合理的TTL或永不过期
Redis常见问题解析:雪崩
使用Redis集群 限流
Redis在产品开发中的应用实践
后端采用nodeJS 使用Azure的Redis服务 Redis的使用场景
“网络抖动”或者Redis服务异常导致Redis访问超时 Redis客户端驱动稳定性问题
进阶之Redis协议简介
简单 解析速度快 可读性好
每一个node两个tcp 连接 一个负责client-server通讯(P: 6379) 一个负责node之间通讯(P: 10000 + 6379)
简单字符(首字节: “+”)
“+OK\r\n”
错误(首字节: “-”)
“-error msg\r\n”
数字(首字节: “:”)
“:123\r\n”
批量字符(首字节: “$”)
“&hello\r\nWhoa re you\r\n”
数组(首字节: “*”)
“*0\r\n”
“*-1\r\n”
除了Redis,还有什么NoSQL型数据库
总结
如果您觉得这篇文章对您有点用的话,麻烦您为本文来个四连:转发分享、点赞、点在看、留言,因为这将是我写作与分享更多优质文章的最强动力!
本公众号全部博文已整理成一个目录,请在公众号后台回复「m
」获取!
推荐阅读:
1、史上最全 Redis 总结,你想知道的都在这里啦!
2、学 Redis,至少要看看这篇!7000 字小结
3、Redis 使用的 10 个小技巧!
4、请收好这一份详细 & 清晰的计算机网络基础学习指南!
5、打造一款高逼格的 Vim 神器!
6、超清晰的 DNS 原理入门指南! 关注微信公众号「杰哥的IT之旅」,后台回复「1024」查看更多内容,回复「加群」备注:地区-职业方向-昵称 即可加入读者交流群。
推荐阅读:
2、学 Redis,至少要看看这篇!7000 字小结
3、Redis 使用的 10 个小技巧!
4、请收好这一份详细 & 清晰的计算机网络基础学习指南!
5、打造一款高逼格的 Vim 神器!
6、超清晰的 DNS 原理入门指南!
点个[在看],是对杰哥最大的支持!
评论