首页 > 数据库 > Redis > 正文

redis集合类型_动力节点Java学院整理

2020-03-17 12:37:07
字体:
来源:转载
供稿:网友

我们来看看Redis五大类型中的第四大类型:“集合类型”,集合类型还是蛮有意思的,先看redis手册,如下:

redis,集合类型

上面就是redis中的set类型使用到的所有方法,还是老话,常用的方法也就那么四个(CURD)。。。

一: 常用方法

1. SAdd

  这个方法毫无疑问,就是向集合里面添加数据,比如下面这样,我往fruits集合里面添加喜爱的水果。

127.0.0.1:6379> sadd fruits apple(integer) 1127.0.0.1:6379> sadd fruits banana(integer) 1127.0.0.1:6379> smembers fruits1) "banana"2) "apple"127.0.0.1:6379>

redis,集合类型

上面这个sadd你也看到了,我往集合里面成功添加了两个元素,现在你可能不满足这么简单的添加,你或许想知道set这个集合在redis底层是使用什么来实现的,你可以用object encoding查看一下便知:

127.0.0.1:6379> object encoding fruits"hashtable"127.0.0.1:6379>

看到了吧,是hashtable这个,看下底层代码:

redis,集合类型

有没有看到dictAdd方法,而其中的第三个参数正好是Null。。。对应着*val形参,然后我再带你看看dictAdd方法的定义。 

redis,集合类型

2. SPOP,SMEMBERS

    既然元素进来了,总不能不出来吧,这里的第一个SPOP:移除并返回集合中的一个随机元素。

redis,集合类型

刚才随便插了一句话,下面我们继续SAdd,再SPop出来。

127.0.0.1:6379> sadd fruits pear(integer) 1127.0.0.1:6379> sadd fruits grape(integer) 1127.0.0.1:6379> sadd fruits chestnut(integer) 1127.0.0.1:6379> smembers fruits1) "grape"2) "pear"3) "banana"4) "apple"5) "chestnut"127.0.0.1:6379> spop fruits"apple"127.0.0.1:6379> spop fruits"chestnut"127.0.0.1:6379> smembers fruits1) "grape"2) "pear"3) "banana"127.0.0.1:6379>

redis,集合类型

这个方法确实还是蛮好的,起码它是原子性操作,如果要我自己实现的话,起码还是要10行左右代码的。 

3. SREM

    既然说到了CURD,那怎么能少了D呢,它的功能定义就是:移除集合 key 中的一个或多个 member 元素,不存在的 member 元素会被忽略,

下面我随便举个例子,删除fruits中的pear。

127.0.0.1:6379> smembers fruits1) "grape"2) "pear"3) "banana"127.0.0.1:6379> srem fruits pear(integer) 1127.0.0.1:6379> smembers fruits1) "grape"2) "banana"127.0.0.1:6379>

redis,集合类型

 


注:相关教程知识阅读请移步到Redis频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表