Redis

简单介绍

  • 概述
    • redis 是一个典型的高性能 key-value数库库
    • redis 的性能十分优越,以支持每秒十几万的读/写操作,其性能超数据库,并且支持集群、分布式、主从同步等配置,还支持一定事务能力
  • 特点
    • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
    • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
    • Redis支持数据的备份,即master-slave模式的数据备份

操作以及应用场景

  • Key
    • 常见命令
      • DEL
      • EXIST
      • EXPIRE
      • EXPIREAT
  • string类型
    • 常见的命令
      • incr
      • decr
      • incrby
      • decrby
      • setbit、setbit、bitcount
      • SETNX
    • 应用场景
      • 分布式id生成器
      • 限流
      • 秒杀
      • 签到、是否在线
      • 分布式事务锁
  • Hash 类型
    • 常见的命令
    • 应用场景
      • 购物车
      • 基本信息存储
  • List
    • 应用场景
      • 简单消息队列
      • 最新列表
  • SET
    • 应用场景
      • 元素去重
  • Sorted Set
    • 应用场景
      • 排行榜
      • 我的关注
      • 我的粉丝
  • HyperLogLog
    • 常见命令
      • PFADD
      • PFCount
    • 应用场景
      • 大数据量的UV PV
  • GEO
    • 常用命令
      • GEOADD
      • GEODIST
      • GEORADIUS
      • GEORADIUSBYMEMBER
    • 应用场景
      • LBS 地图应用。附近外卖
  • 发布订阅(PUB/SUB Stream 5.0)

功能

  • 持久化
    • RDB(DUMP)
      • 优点:文件小、恢复快、适用于灾备
      • 缺点:dump到磁盘有大量IO
    • AOF(log)
      • 优点:每修改同步、秒级同步
      • 缺点:文件大
    • 混合持久化
      • RDB+AOF
  • 主从复制
    • Master可以拥有多个slave
    • 多个slave可以连接同一个Master外,还可以连接到其他的slave
    • 主从复制不会阻塞Master,在主从复制时,Master可以处理client请求。
    • 提供系统的伸缩性。
    • 支持slave只读模式
    • 异步的
  • redis集群
    • image
  • 高可用
    • 主从复制+哨兵机制(监控、提醒、自动故障迁移)+keepalived(自动重启)
  • 事务
    • MULTI | EXEC
      • 单个 Redis 命令的执行是原子性的,但 Redis 没有在事务上增加任何维持原子性的机制,所以 Redis 事务的执行并不是原子性的。
      • 事务可以理解为一个打包的批量执行脚本,但批量指令并非原子化的操作,中间某条指令的失败不会导致前面已做指令的回滚,也不会造成后续的指令不做
    • Lua脚本
      • Lua脚本在Redis中是原子执行的, 执行过程中间不会插入其他命令。
      • Lua脚本可以帮助开发和运维人员创造出自己定制的命令, 并可以将这些命令常驻在Redis内存中
      • 实现复用的效果
      • Lua脚本可以将多条命令一次性打包, 有效地减少网络开销
      • script load script | script exists | script flush

注意事项

  • 缓存穿透(透过redis)
  • 缓存击穿(瞬间)
  • 缓存雪崩(大量)

如何提升redis的性能

  • 瓶颈在哪里?网络IO
    • M系列的命令(原子)
    • LUA
    • PipLine
    • redis6.0 多线程模型
      • 以前:多路复用 select、poll、epoll(单个线程)
      • 多线程任务分摊 Redis 同步 IO 读写负荷
      • 可以充分利用服务器 CPU 资源,目前主线程只能利用一个核
  • IO image
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值