【技术栈】Redis

1. Redis简介

Redis:
1. 缓存数据库:作为缓存缓存数据,也有持久化功能(RDB/AOF)
2. NoSql数据库:和关系型数据库不同,是基于KV键值对的内存数据库
3. 单进程单线程:Redis是单进程单线程的,命令串行执行,网络IO多路复用技术
4. 丰富的数据类型:除常见的有5种数据类型之外,还有位图、跳表等数据结构

2. Redis数据结构

如图所示:Redis主要有5种数据结构
1. String:单值存储、对象存储(json字符串)、分布式锁、计数器(incr)、session共享、分布式系统全局序列号
2. HashMap:对象存储(Hset user userid:name zz)、购物车(Hset user:userid productId number)
3. List:数据结构(栈:Lpush+Lpop、队列:Lpush+Rpop、阻塞队列:Lpush+BRpop)、朋友圈消息(Lpush user:zzid Msgid)、打车
4. Set:微信抽奖(SADD actionId userids)、点赞/收藏/标签(SADD like:Msgid userids)、集合操作(共同关注、可能认识的人、商品筛选)
5. Zset:排行榜

3. Redis应用场景

Redis的应用场景和其特点是相关联的:
1. 读写性能优异:热点数据缓存
2. 持久化:Nosql数据库、主从热备保证高可用、集群分片应对海量数据和高并发
3. 数据类型丰富:String-缓存值、计算器、分布式序列号,hash-缓存对象、购物车、详情信息,list-队列、朋友圈,set-点赞、关注,共同好友,可能认识的人,zset-排行榜
4. 单线程:分布式锁(秒杀)
5. 数据自动过期:短信、限时优惠
6. 发布订阅-MQ队列
7. 分布式:分布式锁

秒杀活动结合Redis的实现:
1. 提前预热数据,放入Redis
2. 商品列表放入Redis List
3. 商品的详情数据 Redis hash保存,设置过期时间
4. 商品的库存数据Redis sorted set保存
5. 用户的地址信息Redis set保存
6. 订单产生扣库存通过Redis制造分布式锁,库存同步扣除
7. 订单产生后发货的数据,产生Redis list,通过消息队列处理
8. 秒杀结束后,再把Redis数据和数据库进行同步

用setbit统计活跃用户(1亿)https://zhuanlan.zhihu.com/p/129243231

4. Redis缓存异常

详细请参考写的另一篇总结:https://blog.csdn.net/weixin_41241676/article/details/114970630

5. Redis持久化

Redis虽然是内存数据库,但是也支持将内存数据持久化到硬盘
持久化:
1. RDB:快照方式(默认),每隔一定时间将内存中的数据写入*.rab文件
1.1 优点:可配置多长时间内多少条发生了变化,RDB适合备份和重启,另,持久化时fork出一个子线程,不影响主线程
1.2 缺点:断电可能丢失最后一次快照的数据,fork时内存中的数据被克隆一份,空间占用2倍
2. AOF:追加方式,以日志追加方式将写操作以resp命令写入到*.aof文件中
2.1 优点:持久化时可选用fsync的策略(always,everysec,no)
2.2 缺点:文件大

注意:
1. RDB和AOF方式同时开启,启动redis时使用AOF文件对数据进行重新加载(AOF数据更全)
2. RDB能够指定一定时间间隔进行快照备份,AOF后台日志进程以fsync策略对写操作以resp命令写入备份文件中
3. AOF文件过大时,会进行日志的重写(比如100次的字段加一操作,100次操作重写为一条命令+100)
4. 实际生产中,RDB和AOF结合使用(类似Oracle、Mysql)

6. Redis事务

Redis是单线程的,每个命令的执行都是原子性的,也可以对多条命令执行事务(MULTI / EXEC)。

7. Redis主从复制

参考链接:

1. 一张图搞懂Redis缓存雪崩、缓存穿透、缓存击穿 https://blog.51cto.com/15069471/2610940
2. 应用场景 https://zhuanlan.zhihu.com/p/29665317
3. https://ke.qq.com/webcourse/index.html#cid=2029016&term_id=102130787

【说明】梳理知识用,有些地方未做验证,请保持怀疑态度

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值