转自:http://www.linuxidc.com/Linux/2014-12/111015.htm

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

[日期:2014-12-30] 来源:Linux社区  作者:achelloworld [字体:  ]
 

一.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

Ubuntu 14.04下Redis安装及简单测试 http://www.linuxidc.com/Linux/2014-05/101544.htm

Redis集群明细文档 http://www.linuxidc.com/Linux/2013-09/90118.htm

Ubuntu 12.10下安装Redis(图文详解)+ Jedis连接Redis http://www.linuxidc.com/Linux/2013-06/85816.htm

Redis系列-安装部署维护篇 http://www.linuxidc.com/Linux/2012-12/75627.htm

CentOS 6.3安装Redis http://www.linuxidc.com/Linux/2012-12/75314.htm

Redis安装部署学习笔记 http://www.linuxidc.com/Linux/2014-07/104306.htm

Redis配置文件redis.conf 详解 http://www.linuxidc.com/Linux/2013-11/92524.htm

Redis 的详细介绍请点这里 
Redis 的下载地址请点这里

本文永久更新链接地址http://www.linuxidc.com/Linux/2014-12/111015.htm

redis中的set集合问题的更多相关文章

  1. 从Redis中删除大集合对象的方法

    Redis中的大集合对象,如set.zset等,如果有上千万个元素,一般是不能直接用del命令来删除的,因为del命令可能会耗时几秒钟,而redis本身是单线程的,在高并发的情况下会阻塞大量的请求,严 ...

  2. Redis中7种集合类型应用场景

    StringsStrings 数据结构是简单的key-value类型,value其实不仅是String,也可以是数字.使用Strings类型,你可以完全实现目前 Memcached 的功能,并且效率更 ...

  3. Redis中7种集合类型应用场景&redis常用命令

    Redis常用数据类型 Redis最为常用的数据类型主要有以下五种: String Hash List Set Sorted set 在具体描述这几种数据类型之前,我们先通过一张图了解下Redis内部 ...

  4. redis中插入用户集合的语句,有四个属性

    一.redis 数据结构使用场景 原来看过 redisbook 这本书,对 redis 的基本功能都已经熟悉了,从上周开始看 redis 的源码.目前目标是吃透 redis 的数据结构.我们都知道,在 ...

  5. 快速整明白Redis中的整数集合到底是个啥

    整数集合简介 整数集合(intset)是Redis集合数据类型的内部编码之一,当集合数据类型中的元素都是整数并且元素数量较少的时候,Redis就使用整数集合作为内部编码. 整数集合(intset)中可 ...

  6. 面试官:Redis中有序集合的内部实现方式是什么?

    面试官:Redis中基本的数据类型有哪些? 我:Redis的基本数据类型有:字符串(string).哈希(hash).列表(list).集合(set).有序集合(zset). 面试官:有序集合的内部实 ...

  7. redis中存储小数

    在做一个活动的需求时,需要往redis中有序的集合中存储一个小数,结果发现取出数据和存储时的数据不一致 zadd test_2017 1.1 tom (integer) zrevrange test_ ...

  8. [日常] Redis中set集合的使用思考

    公司部门同事有个需求,就是需要把当前另一个部门a中存储的数据全部导出来,自己当前业务b的数据全部导出来,两个要取一下差集,把a中存在,b中不存在的记下来,要去调用某接口把对应的文件删除.这个我感觉可以 ...

  9. Redis-技术专区-让你彻底会使用“Redis中最陌生且最强大的集合”(ZSET)【前篇】

    前言介绍 很多小伙伴都跟我说,redis中,ZSet(有序集合)是他们最陌生的集合,同时也是觉得特别复杂的集合之一,在开发过程中经常会用到它,而且也是大家最不太有把握使用的集合,所以笔者就从ZSet集 ...

随机推荐

  1. sqlclr创建表值函数案例

    ----------------------------------------------:定义表值类型:(1.一定返回的是IEnumerable2.一定带参数3.一定有FillRowMethodN ...

  2. C语言中的内存对齐

    最近看了好多,也编了好多C语言的浩强哥书后的题,总觉的很不爽,真的真的好怀念linux驱动的代码,好怀念那下划线,那结构体,虽然自己还很菜. 同时看了一遍陈正冲老师的C语言深度剖析,收益很多,又把唐老 ...

  3. 利用自定义的AuthenticationFilter实现Basic认证

    [ASP.NET MVC] 利用自定义的AuthenticationFilter实现Basic认证   很多情况下目标Action方法都要求在一个安全上下文中被执行,这里所谓的安全上下文主要指的是当前 ...

  4. 程序媛也话Android 之 自定义控件(垂直方向滑动条)

    Android里已经有足够多的控件供开发者使用,但有时候我们还是会想要一些不一样的东西,比如一些UI特效,比如一些3D动画,今天就讲讲比较basic的东西:自定义控件. 1.效果图 如果项目里需要一个 ...

  5. Day4:T3搜索 T4数学题排列组合

    T3:搜索 很出名的题吧,费解的开关 同T2一样也是一题很考思考的 附上题解再解释吧: 对于每个状态,算法只需要枚举第一行改变哪些灯的状态,只要第一行的状态固定了,接下来的状态改变方法都是唯一的:每一 ...

  6. jQuery 2.0.3 源码分析Sizzle引擎解析原理

    jQuery 2.0.3 源码分析Sizzle引擎 - 解析原理 声明:本文为原创文章,如需转载,请注明来源并保留原文链接Aaron,谢谢! 先来回答博友的提问: 如何解析 div > p + ...

  7. iOS多线程的初步研究(六)

    iOS多线程的初步研究(六) iOS平台提供更高级的并发(异步)调用接口,让你可以集中精力去设计需完成的任务代码,避免去写与程序逻辑无关的线程生成.运行等管理代码.当然实质上是这些接口隐含生成线程和管 ...

  8. ngx-push-stream模块源码学习(五)——内存清理

    1.定时器         采用nginx自身的定时器管理机制,具体细节待学习过nginx源码后加以补充 2.channel的生成周期 (0).初始(诞生)         发布.订阅均有可能产生ch ...

  9. QuickSwitchSVNClient,快速完成SVN Switch的工具

    [开源]QuickSwitchSVNClient,快速完成SVN Switch的工具 在实际的开发中,我们一般使用SVN工具进行源代码的管理.在实际的产品开发中,根据项目的一些定制要求,往往需要对某一 ...

  10. 挖一下插件v1.3版本发布

    Chrome图片下载插件,支持网页截屏 v.1.3更新说明: 新增屏蔽图片功能,可以将不想看到的图片隐藏 新增屏蔽图片管理选项,可以根据实际的需求取消屏蔽图片 优化操作界面 项目地址:https:// ...