【Redis】String应用场景

  • 单值缓存
SET key value

GET key

 

  • 对象缓存
SET user:1 value(json格式数据)

MSET user:1:name value1  user:1:balance value2

MGET user:1:name  user:2:balance

 

为什么不用hash存储呢?

如果想获取一个对象数据(user1)的name,那么需要把user1的所有数据拿出,在单独获取name;如果用STRING格式,那么只需要取出user:1:name数据即可。

 

  • 分布式锁
线程1:SETNX product:10001 true //返回1代表锁获取成功

线程2:SETNX product:10001 true //返回0代表所获取失败
#减库存方法:
SETNX product:1001 true
查询商品1001的库存
减库存
重新把减完剩余的库存更新回数据库
del product:1001

 

  • 计数器(原子操作)
#计算浏览量和阅读量等

INCR article:readcount:{文章id} GET article:readcount:{文章id}

 

  • Web集群session共享
Spring Session + Redis 实现Session共享

 

  • 分布式系统全局序列号
#分库分表情况下,若采用mysql自增ID,那么可能会产生重复,所以可以采用Redis记录全局序列号

INCRBY orderId 1000 //redis批量生成序列号提升性能

 

posted @ 2020-05-06 21:59  boluo1230  阅读(312)  评论(0编辑  收藏  举报