SET

Set 是 byte[] 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。

特性

操作

add(String key, byte[]… values)

向集合添加一个或多个成员

remove(String key, byte[]… values)

移除集合中一个或多个成员

addMayTTL(String key, int ttl, byte[]… values)

向集合添加一个或多个成员,如果集合在添加时不存在,则为集合设置TTL

contains(String key, byte[] value)

判断value是否存在于集合中

remove(String key, byte[]… values)

移除集合中一个或多个成员

pop(String key, int num)

移除并返回集合中的n个元素

iterator(String key)

获取一个迭代器。用来遍历集合

  1. try (RIterator<ZSet> iterator = set.iterator("test")) {
  2. while (iterator.hasNext()) {
  3. ZSet.Entry er = iterator.next();
  4. byte[] value = er.getValue();
  5. }
  6. }

遍历器在使用完成后必须被关闭!!!注:迭代器实现了AutoCloseable 接口,可以利用try(iterator)自动关闭

需要注意的是:迭代器遍历的数据是不变的快照数据在迭代器遍历时,如果列表有变化,这些变化不会在迭代器遍历中体现

isExist(String key)

判断键为key的Set是否存在

size(String key)

获取Set长度

getTtl(String key)

获取Set的ttl

ttl(String key, int ttl)

设置Set的ttl(秒)

delTtl(String key)

删除Set的ttl

delete(String key)

删除整个Set

deleteFast(String key)

快速删除整个Set

getKeyIterator()

获取一个遍历器,可以遍历所有的Set的键。

  1. try (KeyIterator keyIterator = set.getKeyIterator()) {
  2. while (keyIterator.hasNext()) {
  3. String key = keyIterator.next();
  4. }
  5. }