目录
注意:本文参考 在微博微信场景下学习Redis数据结构 - 知乎
String
字符串常用操作
SET key value //存入字符串键值对
MSET key value [key value ...] //批量存储字符串键值对
SETNX key value //存入一个不存在的字符串键值对
GET key //获取一个字符串键值
MGET key [key ...] //批量获取字符串键值
DEL key [key ...] //删除一个键
EXPIRE key seconds //设置一个键的过期时间(秒)
原子加减
INCR key //将key中储存的数字值加1
DECR key //将key中储存的数字值减1
INCRBY key increment //将key所储存的值加上increment
DECRBY key decrement //将key所储存的值减去decrement
阅读量统计
这个是微信公众号的文章阅读量数量的统计,可以通过redis的string数据结构来解决。使用incr原子操作命令,redis的key是article:readcount:{文章id},当该文章被阅读时,调用incr命令,阅读数量加一,通过get该redis的key,实现文章阅读数量统计的功能。
incr article:readcount:{文章id}
get article:readcount:{文章id}
缓存
可以缓存一个值,或者缓存一个对象
Set Key Value
Get Key
1.Set user:1 value (json格式数据)
2.MSet user:1:name guajia use:1:balance 1888
MGet user1:name user:1:balance
分布式锁
1 下单减库存
解决分布式问题
1 incr命令,统计阅读量(单线程,自动加锁)
2 tomcat的session存到redis中
3 分布式系统全局序列号
INCRBY orderId 1000 // redis 批量生成序列号提升性能
如项目使用 分库分表 ,就可以使用这个 ,目的是让主键ID 在都是唯一的 ,这个在实际场景非常重要。
使用INCRBY orderId 1000 (这个命令是一次生成1000个订单id 供下次生成订单使用)3