redis数据类型之set入门

入门

redis的set是一个无序的,不可重复的集合.大部分方法以s开头

常用方法解析

sadd

将指定的成员添加到存储在key的设置值中。 如果member已经是集合的成员,则不执行任何操作。 如果key不存在,则创建一个具有指定成员作为唯一成员的新集合。 如果键存在但没写值参数,则返回错误。
时间复杂度O(1)

public Long sadd(String key,
                 String... members)
//想当于新建了个set
> sadd myset "hello"
(integer) 1
//往set中添加元素
> sadd myset "world"
(integer) 1
//重复的元素不会被添加,底层原理是什么呢?
> sadd myset "world"
//如果添加了新元素,则为1;如果元素已经是集合的成员,则为0
(integer) 0
//查看集合元素
> smembers myset
1) "world"
2) "hello"
//同时添加多个元素
> sadd myset "hello" "city"
(integer) 1
> smembers myset
1) "world"
2) "hello"
3) "city"
//没有参数报错
> sadd myset
(error) ERR wrong number of arguments for 'sadd' command

scard

返回元素个数,如果key不存在,返回0

> scard myset
(integer) 3

spop

随机删除元素

> sadd uset "one"
(integer) 1
> sadd uset "two"
(integer) 1
> sadd uset "three"
(integer) 1
//随机删除元素,有何用途呢?
> spop uset
"two"
> spop uset
"one"
> smembers uset
1) "three"

srem

定向删除元素

> sadd set3 1 2 3
(integer) 3
> smembers set3
1) "1"
2) "2"
3) "3"
//删除元素2
> srem set3 2
(integer) 1
> smembers set3
1) "1"
2) "3"
//删除不存在的元素也不会报错
> srem set3 9
(integer) 0

sismember

判断是否集合元素,是就返回1 不是就返回0

> sadd set3 1 2 3
(integer) 1
> smembers  set3
1) "1"
2) "2"
3) "3"
//2是集合3的元素,所以返回1
> sismember set3 2
(integer) 1
//10不是集合set3的元素,所以返回0
> sismember set3 10
(integer) 0

scala API

def setdemo(): Unit ={
    //创建set
    val long: lang.Long = jedis.sadd("heroes", "盖伦", "刀妹", "马杀鸡", "刘备")
    //获取set成员并打印
    val set: util.Set[String] = jedis.smembers("heroes")
    import  scala.collection.JavaConversions._
    for(x<-set){
      println(x)
    }
    //del one
    println(jedis.srem("heroes", "刀妹"))
    println("删除后-----------")
    //必须重新获取成员然后再打印,否则看不出效果
    for(x<-jedis.smembers("heroes")){
      println(x)
    }
  }

总结

无非也是增删改查罢了,加上交集,并集,差集之类

增 sadd
删 spop,srem
改 
查 smembers
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值