Redis的应用场景

1、String操作

(1)计数器 
incr artcle:readconunt:{文章id}
get artcle:readconunt:{文章id}

2、Hash操作

1、对象缓存
hmset  user  1:name  lisi  1:password  123456
hmget  user  1:name  1:password
2、电商购物车
(1)以用户ID作为key  1001
(2)商品ID作为field   10088
(3)商品数量value     1
添加商品=hset  cart:1001  10088 1
增加商品=hincrby cart:1001  10088 1
商品总数=hlen cart:1001
删除商品=hdel cart:1001  10088
获取购物车的所有商品=hgetall  cart:1001
优点:
(1)同类数据归类整合存储,方便数据管理
(2)相比String操作消耗内存与cpu更小
(3)相比String更节省空间
缺点:
(1)同类数过期功能不能使用在field上,只能用在key上
(2)Redis集群架构不适合大规模使用

List操作

1、微博消息
1001用户关注了java架构栈(2002)、java从入门到精通(2003)
Java架构栈发微博,消息id为10018
lpush  msg:1001  10018
Java从入门到精通,消息id为20018
lpush  msg:1001  20018
查看最新微博消息 下标从0到5  共6条
lrange  msg:1001  0 5

Set操作

1、抽奖
(1)点击参与守将加入集合 用户id=1888-1893
sadd  key  1888
(2)查看当前所有参与抽奖的用户
smembers  key
(3)抽取count名中奖者
srandmember  key  count 不会删除集合中的元素
spop key count 删除集合中的元素
2、微信点赞 收藏 标签
(1)点赞
sadd  like:{消息ID}  {用户ID}
(2)取消点赞
srem  like:{消息ID}  {用户ID}
(3)检查用户是否点赞过
sismember  like:{消息id}  {用户ID}
(4)获取点赞用户列表
smembers  like:{消息id} 
(5)获取点赞用户数量
scard  like:{消息ID}
3、集合操作实现微信微博关注模型
集合操作 set1={a,b,c}  set2={b,c,c}   set3={c,d,e}
sinter  set1 set2 set3  ->  {a}  交集
sunion  set1 set2 set3  ->  {a,b,c,d,e} 并集
sdiff  set1 set2 set3  -> {a}   差集
(1)刘备关注的人:
liubeiSet -> {guanyu,zhangfei,zhaoyun,zhugeliang}
(2)曹操关注的人:
caocaoSet -> {guanyu,zhaoyun,guojia}
(3)孙权关注的人:
sunquanSet -> {zhaoyun,zhouyu,zhugeliang}
(4)刘备和曹操的共同关注
sinter liubeiSet caocaoSet ->{guanyu,zhaoyun}
(5)刘备关注的孙权是否也关注了(zhaoyun,zhugeliang)
sismember sunquanSet zhaoyun
(6)刘备可能认识的人
sdiff  caocaoSet  liubeiSet ->{guojia}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis是一种高性能的内存数据库,它被广泛用于各种应用场景。以下是几个常见的Redis应用场景: 1. 缓存:由于Redis的高性能和低延迟,它通常被用作数据缓存层,将频繁访问的数据存储在内存中,从而加快数据访问速度。 2. 会话存储:在分布式系统中,可以使用Redis存储用户会话信息,包括用户登录状态、权限等。这样可以轻松实现会话共享和负载均衡。 3. 发布/订阅系统:Redis支持发布/订阅模式,可以用于实时消息传递、事件通知等场景。发布者将消息发布到指定频道,订阅者可以接收到相关消息并做出相应处理。 4. 计数器和排行榜:Redis提供了原子操作的支持,可以用于实现计数器和排行榜功能。例如,可以使用RedisINCR操作来实现网站的访问计数器,或者根据用户的积分进行排行。 5. 分布式锁:在分布式系统中,为了保证数据的一致性和并发控制,可以使用Redis的分布式锁功能。通过使用Redis的SETNX操作来获取锁,并使用EXPIRE设置锁的过期时间,可以有效地实现分布式锁。 6. 消息队列:Redis的列表结构可以用作轻量级的消息队列。生产者将消息推入列表,消费者则从列表中弹出消息进行处理。这种方式简单高效,适用于需要异步处理的场景。 这只是一部分常见的Redis应用场景,实际上,由于Redis的灵活性和高性能,它在各种场景下都有不同的应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值