Redis五种数据类型应用场景(学习笔记)

一、String应用场景

 

单值缓存

set key  value 

对象缓存

mset k1 v1 k2 v2 

mget k1 k2

分布式锁

setnx k1 v1

set k1 v1 ex   10 nx 放置意外终止

计数器

incr key
Web集群Session共享

分布式ID

incrby key 100

 

二、Hash 应用场景

 

对象缓存

hmset user 3:name mawenbo 3:age 32 3:email 732648796@qq.com

hmget use 3:name 3:age 3:email

HMSET 不宜存储BigKey及BigValue。如果数据量太大,可采用分段存储。比如User数据量太大,将User进行拆分,Hash分开存储User0,User1,User2,User3......

 

 

 电商购物车

 

hset jeuc:100001  goodsId_10002   1

hincrby jeuc:100001  goodsId_10002   1

hgetall jeuc:100001

 

 优点:

  同类数据归并整合存储,方便数据管理

  相比String操作小号内存与CPU更小

  相比String存储更节省空间。

缺点:

  过期功能不能使用在filed,只能使用在key上

  Redis集群架构下不适合大规模存储。

  三、List 应用场景

栈:Stack = LPUSH + LPOP

队列: LPUSH + RPOP

阻塞队列: LPUSH + BRPOP

微信和微博公众号信息流

 

  四、Set 应用场景

微信抽奖小程序

SADD Key  {userID}

SMEMBERS key 获取所有

SRANDMEMBER KEY [count] 从集合中随机选出count个元素,元素不从key中删除

SPOP KEY [count] 从集合中随机选出count个元素,元素从key中删除

 

微信微博点赞,收藏,标签

1)点赞

SADD like:{消息Id} {用户ID}

2)取消点赞

SREM like:{消息Id} {用户ID}

3)检查用户是否点过赞

SISMEMBER like:{消息ID} {用户ID}

4)获取点赞的用户列表

SMEMBERS like:{消息ID}

5)获取点赞用户数
SCARD like:{消息ID}

集合操作微博微信关注模型

 五、ZSet 应用场景

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值