redis使用场景

String应用场景

#单值缓存
set key value
get key

# 对象缓存
set object '{"name":"ws","age":"18"}'
get object
mset object:name ws object:age 18
mget object:name object:age

# 分布式锁
setnx key true //返回1代表成功,0代表失败
...执行业务逻辑
del key //执行完成释放锁
set key value ex seconds nx //防止程序意外终止导致死锁

# 计数器
incr key
get key

# Web集群session共享
redis存储sessionId及信息实现session共享

# 分布式全局序列号
incrby key increment

Hash应用场景

一般对象用string + json存储,对象中某些频繁变化的属性抽出来用hash存储,比如电商购物车就可以用hash实现

# 模型设计
用户ID为key
商品ID为field
数量为value

# 购物车常用操作
添加商品
hset userid productid 1
删除商品
hdel userid productid
增加数量
hincrby userid productid 1
减小数量
hincrby userid productid -1
获取单个商品数量
hget userid productid
获取购物车商品数量
hlen userid

List应用场景

list可以实现的数据结构

# list实现栈stack
lpush+lpop

#list实现队列queue
lpush+rpop

#list实现阻塞队列Blocking MQ
lpush+brpop

信息流

# 用户ID为userid 订阅的公众号信息编号为msgid
# 公众号发布信息
lpush msg:userid msgid
# 用户刷新获取信息数及id
llen msg:userid
lrange msg:userid start stop

Set应用场景

黑名单/白名单

set类型存储这些黑名单数据,
sismember命令可用于判断用户、ip、设备是否处于黑名单之中。

共同关注、感兴趣的人、点赞、签到

可以通过set集合运算实现

随机展示、抽奖

srandmember可以实现

Zset应用场景

排行榜

# 存入用户及对应分数
zadd ranking 10 user1
...

# 取分数最高的n个用户
zrevrange ranking 0 n withscores
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值