简述redis特点及其应用场景

在这里插入图片描述

1.Redis 特性

  • 速度快: 10W QPS,基于内存,C语言实现
  • 单线程(目前已近支持多线程)
  • 持久化(虽然基于内存,但是具有写入磁盘能力,做到断电不丢)
  • 支持多种数据结构
  • 支持多种编程语言
  • 功能丰富: 支持Lua脚本,发布订阅,事务,pipeline(流水线)等功能
  • 简单: 代码短小精悍(单机核心代码只有23000行左右),单线程开发容易,不依赖外部库,使用简单
  • 主从复制
  • 支持高可用和分布式

1.1.单线程(处理客户端请求)

Redis 6.0版本前一直是单线程方式处理用户的请求

image-20220721182404385

单线程为何如此快?

  • 纯内存
  • 非阻塞
  • 避免线程切换和竞态消耗

因为存的数据都比较小,运算速率比较高,单线程反而可以避免切换CPU浪费时间,为了可以提高效率可以实行多实例,一个CPU跑一个实例。

image-20220721182416919

注意事项:

  • 一次只运行一条命令
  • 拒绝长(慢)命令:keys, flushall, flushdb, slow lua script, mutil/exec, operate big value(collection),排队时间很长。
  • 其实不是单线程: 早期版本是单进程单线程,3版本后实际还有其它的线程, 实现特定功能,如: fysncfile descriptor,close file descriptor

2.redis 典型应用场景

  • Session 共享:常见于web集群中的Tomcat或者PHP中多web服务器session共享

  • 缓存:数据查询、电商网站商品信息、新闻内容

  • 计数器:访问排行榜、商品浏览数等和次数相关的数值统计场景

  • 微博/微信社交场合:共同好友,粉丝数,关注,点赞评论等

  • 消息队列 :ELK的日志缓存、部分业务的订阅发布系统

  • 地理位置:基于GEO(地理信息定位),实现摇一摇,附近的人,外卖等功能

image-20220721235556019

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值