- 单值缓存
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批量生成序列号提升性能