码迷,mamicode.com
首页 > 其他好文 > 详细

redis的集合

时间:2021-01-06 12:26:18      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:tun   交集   关联   有一个   sms   googl   member   排序   one   

redis的集合,是一种无序的集合,集合中的元素没有先后顺序。

集合相关的操作也很丰富,如添加新元素、删除已有元素、取交集、取并集、取差集等。我们来看例子:
代码如下:

//向集合myset中加入一个新元素"one"
127.0.0.1:6379> sadd myset "one"
(integer) 1
127.0.0.1:6379> sadd myset "two"
(integer) 1
//列出集合myset中的所有元素
127.0.0.1:6379> smembers myset

  1. "one"
  2. "two"
    //判断元素1是否在集合myset中,返回1表示存在
    127.0.0.1:6379> sismember myset "one"
    (integer) 1
    //判断元素3是否在集合myset中,返回0表示不存在
    127.0.0.1:6379> sismember myset "three"
    (integer) 0
    //新建一个新的集合yourset
    127.0.0.1:6379> sadd yourset "1"
    (integer) 1
    127.0.0.1:6379> sadd yourset "2"
    (integer) 1
    127.0.0.1:6379> smembers yourset
  3. "1"
  4. "2"
    //对两个集合求并集
    127.0.0.1:6379> sunion myset yourset
  5. "1"
  6. "one"
  7. "2"
  8. "two"
    对于集合的使用,也有一些常见的方式,比如,QQ有一个社交功能叫做“好友标签”,大家可以给你的好友贴标签,比如“大美女”、“土豪”、“欧巴”等等,这时就可以使用redis的集合来实现,把每一个用户的标签都存储在一个集合之中。

【redis数据结构 – 有序集合】

redis不但提供了无需集合(sets),还很体贴的提供了有序集合(sorted sets)。有序集合中的每个元素都关联一个序号(score),这便是排序的依据。

很多时候,我们都将redis中的有序集合叫做zsets,这是因为在redis中,有序集合相关的操作指令都是以z开头的,比如zrange、zadd、zrevrange、zrangebyscore等等

老规矩,我们来看几个生动的例子:
//新增一个有序集合myzset,并加入一个元素baidu.com,给它赋予的序号是1:
代码如下:

127.0.0.1:6379> zadd myzset 1 baidu.com
(integer) 1
//向myzset中新增一个元素360.com,赋予它的序号是3
127.0.0.1:6379> zadd myzset 3 360.com
(integer) 1
//向myzset中新增一个元素google.com,赋予它的序号是2
127.0.0.1:6379> zadd myzset 2 google.com
(integer) 1
//列出myzset的所有元素,同时列出其序号,可以看出myzset已经是有序的了。
127.0.0.1:6379> zrange myzset 0 -1 with scores

    1. "baidu.com"
    2. "1"
    3. "google.com"
    4. "2"
    5. "360.com"
    6. "3"
      //只列出myzset的元素
      127.0.0.1:6379> zrange myzset 0 -1
    7. "baidu.com"
    8. "google.com"
    9. "360.com"

redis的集合

标签:tun   交集   关联   有一个   sms   googl   member   排序   one   

原文地址:https://www.cnblogs.com/lixuze/p/14226862.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!