Redis 只会用缓存?16种妙用让同事直呼牛X

Redis 不只是作为缓存工具,还可以用于数据共享分布式、实现分布式锁、生成全局ID、作为计数器、限流工具、位统计、构建购物车、用户消息时间线、消息队列、抽奖系统、点赞签到打卡管理、商品标签和筛选、用户关注和推荐模型以及创建排行榜等。
  • 1、缓存
  • 2、数据共享分布式
  • 3、分布式锁
  • 4、全局ID
  • 5、计数器
  • 6、限流
  • 7、位统计
  • 8、购物车
  • 9、用户消息时间线timeline
  • 10、消息队列
  • 11、抽奖
  • 12、点赞、签到、打卡
  • 13、商品标签
  • 14、商品筛选
  • 15、用户关注、推荐模型
  • 16、排行榜

图片图片


1、缓存

String类型

例如:热点数据缓存(例如报表、明星出轨),对象缓存、全页缓存、可以提升热点数据的访问数据。

2、数据共享分布式

String 类型,因为 Redis 是分布式的独立服务,可以在多个应用之间共享

例如:分布式Session

<dependency>
 <groupId>org.springframework.session</groupId>
 <artifactId>spring-session-data-redis<
### Redis 缓存工作机制 Redis 不仅用于读操作,还能够处理写操作。具体来说,在缓存系统中,Redis 可以通过不同的模式来支持只读缓存和读写缓存。 #### 1. 只读缓存 (Read-only Cache) 在这种情况下,Redis 主要用来加速数据的读取过程。当客户端发起查询请求时,如果所需的数据存在于 Redis 中,则直接从 Redis 获取并返回给客户端;若不存在于 Redis 中,则会去底层数据库查找并将结果存入 Redis 后再反馈给用户[^1]。 ```python def get_data_from_cache(key): data = redis.get(key) if not data: data = database.query(key) # 如果未命中则查询数据库 redis.set(key, data) # 并将新获取到的数据放入缓存 return data ``` #### 2. 读写缓存 (Read-write Cache 或 Write-through/Write-back Cache) 对于需要频繁更新的应用场景,除了上述提到的基础功能外,还可以配置 Redis 来执行写回(write-back)或直通(write-through)策略: - **Write-through**: 客户端向 Redis 发送写命令的同时也会被转发到底层存储引擎(如 MySQL),确保两者之间的一致性。 - **Write-behind / Lazy Loading**: 数据先保存至 Redis ,之后异步地刷新到持久化存储里。这种方式提高了性能但可能会造成短暂的时间窗口内不一致的情况发生。 ```python # 写穿模式下的插入函数示例 def insert_into_db_and_cache(key, value): success = db.insert(key, value) # 首先尝试插入数据库 if success: redis.set(key, value) # 插入成功后再设置进缓存 ``` 综上所述,虽然 Redis 常见用途之一是用来做高速度读取缓存,但它同样具备良好的写能力,并可通过合理的架构设计实现高效的读写混合负载管理[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Elivis Hu

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

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

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

打赏作者

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

抵扣说明:

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

余额充值