欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

redis数据结构使用场景

程序员文章站 2022-07-10 23:48:12
...

数据结构类型

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 会发现并拒绝执行。
相关标签: redis redis