redis数据结构使用场景

数据结构类型

1. String     - 字符串
2. Hash       - 字典
3. List       - 列表
4. Set        - 集合
5. Sorted Set - 有序集合

场景

  • String - 字符串

    String是简单的Key-Value类型。Value不仅可以是String,也可以是数字,支持get、set、incr、decr操作。

1.设置和获取字符串的某一段内容
2.设置和获取字符串中的某一个(bit)
3.原子计数器

  • Hash - 字典

    Hash结构可以使你像在数据库中Update一个属性一样,只修改某一项属性值

存储、读取、修改用户属性值

  • List - 列表

    List == 链表(redis使用双端链表实现list)

1.微博 TimeLine
2.消息队列
  • Set - 集合

    Set就是一个集合,集合的概念就是一堆不重复值的组合

例子:
    在微博应用中,可以将一个用户所关注的人存在一个集合中,将其他的粉丝存在一个集合,
    因为redis非常人性化的为集合提供了求交集,并集,差集的操作,
    那么就可以非常方便的实现共同关注,共同喜欢,二度好友等功能。
    
1.共同好友、二度好友
2.利用唯一性,可以统计访问网站的所有独立IP
3.好友推荐的时候,根据tag求交集,大于某个threshold[阈值]就可以推荐

  • Sorted Set - 有序集合

    sorted set 是将set中的元素增加了一个权重参数socre,是的集合中的元素能够按socre进行排序

1.带有权重的元素,比如一个游戏的用户得分排行榜
2.比较复杂的数据结构,一般用到的场景不多
  • 其他功能使用场景

    1.订阅 - 发布系统

    Pub/Sub 从字面上立即就是发布[Publish]与订阅[Subscribe],
    在reids中,你可以设置某一个key值进行消息发布以及消息订阅,
    当一个key值上有了消息发布后,所有订阅它的客户端都会受到相应的消息,
    这一个功能最明显的用法就是用作实时消息系统,比如普通的即时聊天,群聊等功能。

    2.事务 - Transactions

    redis的Transactions 提供的并不是严格的 ACID 的事务(比如一串用 EXEC 提交执行的命令,
    在执行中服务器宕机,那么会有一部分命令执行了,剩下的没执行),但是这个 Transactions
    还是提供了基本的命令打包执行的功能(在服务器不出问题的情况下,可以保证一连串的命令是顺序
    在一起执行的,中间有会有其它客户端命令插进来执行)。Redis 还提供了一个 Watch 功能,
    你可以对一个 key 进行 Watch,然后再执行Transactions,在这过程中,如果这个 Watched 的值
    进行了修改,那么这个 Transactions 会发现并拒绝执行。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值