redis大厂程序员是怎么使用的|青训营笔记

57 阅读4分钟

一、什么是Redis

Redis(全称为Remote Dictionary Server)是一个开源的高性能键值对存储系统,具有快速、灵活和可扩展的特性。它是一个基于内存的数据结构存储系统,可以用作数据库、缓存和消息代理。

Redis 支持多种数据结构,包括字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。这些数据结构提供了丰富的操作命令,使得开发者可以方便地处理各种数据需求。此外,Redis 还提供了两种持久化方式,即快照(Snapshotting)和日志追加(Append-only file,AOF)。快照方式将 Redis 内存数据以二进制格式写入磁盘,而 AOF 则通过追加记录 Redis 的操作命令来实现持久化。

Redis 还支持发布/订阅模式,可以用作消息代理。发布者将消息发送到指定的频道,订阅者则可以接收和处理这些消息。这种模式在构建实时通信、事件驱动系统和消息队列等场景中非常有用。此外,Redis 还可以通过主从复制和分片来实现数据的分布式存储和高可用性。主从复制可以将数据复制到多个从节点,实现读写分离和数据备份。而分片则可以将数据分布在多个 Redis 节点上,实现横向扩展和负载均衡。

1.为什么需要Redis? 数据从单表,演进出了分库分表 MySQL从单机演进出了集群 数据量增长,读写数据压力的不断增加 诞生了直接从内存读取数据的情况 数据分冷热 热数据:经常被访问到的数据 将数据储存到内存中

2.Redis的工作原理 数据从内存中读写 数据保存到硬盘上防止重启数据丢失 增量数据保存到AOF文件 全量数据保存RDB文件 单线程处理所有操作命令

二、Redis的应用案例

1.连续签到 从最后一次签到开始向前统计,直到遇到第一次未签到为止,计算总的签到次数,就是连续签到天数。

2.消息通知 Redis的消息通知通过列表类型实现,分为两种模式:阻塞式、发布/订阅式:

〈1〉.阻塞式 传递消息的队列,与任务队列进行交互的实体有两类,一类是生产者(producer),另一类则是消费者(consumer)。生产者将需要处理的任务放入任务队列中,而消费者则不断地从任务独立中读入任务信息并执行。

〈2〉.发布订阅式 订阅者可以订阅一个或多个频道(channel),而发布者可以向指定的频道发送消息,所有订阅次频道的订阅者都会收到次消息

3.计数 计数功能是指在程序运行过程中,对某个事件的发生次数进行累加。比如网站的访问量统计、商品的浏览量统计

4.排行榜 是一个基于Redis数据库实现的数据排行榜,用于用户积分排名、热搜榜等领域。通过使用Redis数据结构提高排行榜的性能、可扩展性和可靠性,实现快速、实时的排名。Redis排行榜支持多种排名方式,比如按分数或时间排序。 有序集合是最适合用来实现排行榜的数据结构,每个元素有一个分数和一个成员,可以根据分数进行排序。在Redis中,可以使用ZADD命令添加元素,使用ZREVRANK命令获取排名,使用ZRANGE命令获取分数范围内的元素。

5.限流 限流一般是指在一个时间窗口内对某些操作请求的数量进行限制。

6.分布式锁 并发场景,要求一次只能有一个协程执行。执行完毕后,其他等待中的协程才能执行。 可以使用redis的setnx实现,利用两个特性 Redis是单线程执行命令 setnx只有未设置过才能执行成功

github.com/redis/go-redis/v9 :这是go语言的redis客户端库。