Redis数据库(set类型和zset类型)

来源:互联网 发布:免费过磅软件 编辑:程序博客网 时间:2024/06/08 04:32

一.set类型


  set是一个集合,它是string类型的无序集合,set是通过hash table实现的,添加,删除,查找的时间复杂

  度都是O(1),对于集合我们可以取并集,交集,差集。通过这些操作我们可以实现SNS中好友推荐和Blog的tag

  功能。


  set常见操作:


  (1)sadd

      向一个集合中添加一个元素。例如:sadd set1 Hello


  (2)smembers

      查看集合中的所有元素。例如:smembers set1


  (3)srem

      删除集合中一个指定的元素。例如:srem set1 Hello


  (4)spop

      随机弹出set集合中德一个元素。例如:spop set1


  (5)sdiff

      求两个集合的差集,比如sdiff set1 set2,表示保留set1中与set2不同的所有元素。


  (6)sdiffstore

      将返回的差集存进一个集合。例如:sdiffstore set3 set1 set2,表示把set1与set2的差集存进

      集合set3。


  (7)sinter

      返回给定两个集合的交集。例如:sinter set1 set2,表示返回set1和set2的交集。


  (8)sinterstore

      将两个集合的交集存进一个集合。例如:sinterstore set3 set1 set2,表示把set1和set2的交集

      存进集合set3。


  (9)sunion

      返回给定两个集合的并集。例如:sunion set1 set2,表示返回set1和set2的并集。


  (10)sunionstore

      将两个集合的并集存进一个集合。例如:sunionstore set3 set1 set2,表示把set1和set2的并集

      存进集合set3


  (11)smove

      从第一个key对应的set中移除member并添加到第二个对应的集合中。

      例如:smove set1 set2 Hello,表示把set1中的Hello元素移动到set2中。


  (12)scard

      返回key对应集合的元素的个数。例如:scard set1。


  (13)sismember

      判断某一个元素是否为集合的元素。比如:sismember set1 Hello,表示判断Hello是否为set1的中

      的元素。


  (14)srandmember

      随机返回名称为key的set的一个元素。例如:srandmember set1。


  

二.zset类型


   zset是在set的基础上增加了顺序,形成一个有序的集合。


   zset的常见操作:


   (1)zadd

       向有序集合zset中增加一个元素。例如:zadd zset 1 Hello


   (2)zrange

       输出zset中指定范围内的的所有元素,按照score从小到大的顺序。

       例如:zrange zset 0 -1 withscores,表示输出有序集合zset中所有的元素,并且输出顺序号。


   (3)zrem

       删除名称为key的zset集合中的元素member。例如:zrem set1 Hello。


   (4)zincrby

       把有序集合zset中的指定元素的序列号加上指定的值。例如:zincrby zset 4 Hello


   (5)zrank

       返回名称为key的zset集合中元素的排名,按照下标从小到大的排名。例如:zrank zset Hello。


   (6)zrevrank

       返回名称为key的zset集合中元素的排名,按照下表从大到小的排名。例如:zrevrank zset Hello。


   (7)zrevrange

       按照score从大到小的顺序输出集合中所有元素。例如:zrevrange zset 0 -1 withscores。


   (8)zrangebyscore

       返回集合中给定区间的元素。例如:zrangebyscore zset 2 3 withscores


   (9)zcount

       返回集合中score在给定区间的数量。zcount zset 2 3


   (10)zcard

       返回集合中元素的个数。


   (11)zremrangebyrank

       按照索引来删除给定区间的元素。例如:zremrangebyrank zset 1 2


   (12)zremrangebyscore

       删除score在指定范围内的元素。例如:zremrangebyscore zset 1 2



0 0
原创粉丝点击