Redis复习总结

本文详细介绍了Redis的数据类型,包括string、list、hash、set和sorted set及其应用场景,如缓存、消息队列、对象存储等。接着探讨了Redis的持久化机制,包括RDB和AOF持久化策略。此外,还讨论了Redis的集群模式,如主从复制、哨兵模式和Redis Cluster,并提到了缓存击穿、穿透和雪崩问题的解决方案。最后,列举了Redis在会话缓存、全页缓存、队列、排行榜/计数器和发布/订阅等场景的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是Redis

简单来说 Redis 就是一个使用 C 语言开发的数据库,不过与传统数据库不同的是 Redis 的数据是存在内存中的 ,也就是它是内存数据库,所以读写速度非常快,因此 Redis 被广泛应用于缓存方向。

另外,Redis 除了做缓存之外,Redis 也经常用来做分布式锁,甚至是消息队列。

Redis 提供了多种数据类型来支持不同的业务场景。Redis 还支持事务 、持久化、Lua 脚本、多种集群方案。

Redis支持的数据类型及其应用场景

1.string

介绍:String类型是Redis最基本的数据类型,String数据结构是简单的 key-value 类型,Redis的String可以包含任何数据。比如jpg图片或者序列化的对象 。

命令

  • set/get:存放(取出)单个key-value
  • mset/mget:存放(取出)多个key-value
  • type key:查看key的类型
  • exists key:判断指定key是否存在
  • keys *: 查看有哪些key
  • del key:删除key
  • TTL key: key的有效时间,-1永久生效,-2删除
  • expire key time:设置有效时长
  • pexpire key time: 设置毫秒

应用场景:

  • 缓存功能:字符串最经典的使用场景,Redis作为缓存层,MySQL作为储存层,绝大部分请求数据都是Redis中获取,由于Redis具有支撑高并发特性,所以缓存通常能起到加速读写和降低后端压力的作用。
  • 计数器:许多运用都会使用Redis作为计数的基础工具,他可以实现快速计数、查询缓存的功能,同时数据可以一步落地到其他的数据源。
    例如:视频播放数系统就是使用Redis作为视频播放数计数的基础组件。
  • 共享Session:出于负载均衡的考虑,分布式服务会将用户信息的访问均衡到不同服务器上,用户刷新一次访问可能会需要重新登录,为避免这个问题可以用Redis将用户Session集中管理,在这种模式下只要保证Redis的高可用和扩展性的,每次获取用户更新或查询登录信息都直接从Redis中集中获取。
  • 限速:处于安全考虑,每次进行登录时让用户输入手机验证码,为了短信接口不被频繁访问,会限制用户每分钟获取验证码的频率。
2.list

介绍list 即是 链表。Redis 的 list 的实现为一个 双向链表,即可以支持反向查找和遍历,更方便操作,不过带来了部分额外的内存开销。

命令

  • lpush/lpop name value:从左存放(取出)单个key-value
  • rpush/rpop name value:从右存放(取出)单个key-value
  • lrange lname 0 -1:从左向右遍历整个列表

应用场景:

  • 消息队列: Redis的lpush+rpop命令组合即可实现阻塞队列,生产者客户端是用lpush从列表左侧插入元素,多个消费者客户端使用rpop命令阻塞时的“抢”列表尾部的元素,多个客户端保证了消费的负载均衡和高可用性
3.hash
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

--流星。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值