zoukankan      html  css  js  c++  java
  • Redis学习笔记(五)- 数据类型之set类型

      Redis 的set是string类型的无序集合。set元素最大可以包含(2的32次方-1)个元素。set的是通过hash table实现的,所以添加,删除,查找的复杂度都是O(1)。hash table会随着添加或者删除自动的调整大小。需要注意的是调整hash table大小时候需要同步(获取写锁)会阻塞其他读写操作。可能不久后就会改用跳表(skip list)来实现,跳表已经在sorted set中使用了。关于set集合类型除了基本的添加删除操作,其他有用的操作还包含集合的取并集(union),交集(intersection),差集(difference)。通过这些操作可以很容易的实现sns中的好友推荐和blog的tag功能。

      set相关命令:

      sadd key member 添加一个string元素到,key对应的set集合中,成功返回1,如果元素已经在集合中返回0

      scard key 返回set的元素个数,如果set是空或者key不存在返回0

      smembers key 返回key对应set的所有元素,结果是无序的

      sismember key member 判断member是否在set中,存在返回1,0表示不存在或者key不存在

      srandmember key 同spop,随机取set中的一个元素,但是不删除元素

      

      spop key 删除并返回key对应set中随机的一个元素,如果set是空或者key不存在返回nil

      srem key member 从key对应set中移除给定元素,成功返回1,如果member在集合中不存在或者key不存在返回0

      

      smove srckey dstkey member 从srckey对应set中移除member并添加到dstkey对应set中,整个操作是原子的。成功返回1,如果member在srckey中不存在返回0,如果key不是set类型返回错误

      

      

  • 相关阅读:
    php实现导出excel功能(转)
    nginx + php-fpm 开启 PATH_INFO 模式
    openEuler安装mariadb后进程查看有[ERROR] mysqld: Server GSSAPI错误
    CentOS 8开放防火墙端口
    ssh连接PVE下debian11的LXC容器非常慢之解决方法
    debian11安装SRS教程
    用python下载网页或图片
    解决Debian vim鼠标无法选中、复制问题
    在Ubuntu系统中安装pymssql
    Mariadb设置允许远程链接
  • 原文地址:https://www.cnblogs.com/leny/p/5672001.html
Copyright © 2011-2022 走看看