小贝_redis set/zset类型学习

redis  set、zset类型

一、集合类型

二、查看set、zset集合类型命令

三、set、zset集合类型实例

一、集合类型

1、redis的集合类型,分为两种,即有序和无序。

2、既然是集合类型,因此也要满足集合的特性即

a、集合的确定性: 组成集合的元素的性质必须明确,不允许有模棱两可、含混不清的情况

b、集合的互异性: 对于一个给定的集合,集合中的元素是互异的”,就是说,“对于一个给定的集合,它的任何两个元素都是不同的

c、集合的无序性: 指表示一个集合时,构成这个集合的元素是无序的

3、集合分类(假设集合A和集合B都是非空)

a、并集: 去掉集合A和集合B的公共部分的元素,组成新的集合

b、交集: 获取集合A和集合B的公告部分的元素,组成新的集合

c、空集: 空元素的集合

二、查看set、zset集合类型命令

1、set类型命令说明


命令名称


格式


说明


sadd


sadd key member


将member元素加入到key当中


srem


srem key member


移除集合key中的元素member


smembers


smembers key


列举集合key的所有元素


sismembers


sismembers key member


判断member元素是否是集合key的元素


scard


scard key


获取集合key的元素个数


smove


smove source destination member


将member元素从source集合移动到destination集合


spop


spop key


移除并返回集合中的一个随机元素


srangmember


srangmember key


返回集合中的一个随机元素


sinter


sinter key key1…


返回一个集合的全部成员,该集合是所有给定集合的交集。

不存在的key被视为空集。

当给定集合当中有一个空集时,结果也为空集(根据集合运算定律)。


sinterstore


sinterstore destination key key1…


此命令等同于sinter,但它将结果保存到destination集合,而不是简单地返回结果集。如果destination集合已经存在,则将其覆盖


sunion


sunion key key1


返回一个集合的全部成员,该集合是所有给定集合的并集。

不存在的key被视为空集


sunionstore


sunionstore destination key key1…


此命令等同于sunion,但它将结果保存到destination集合,而不是简单地返回结果集。如果destination已经存在,则将其覆盖


sdiff


sdiff key key1


返回一个集合的全部成员,该集合是所有给定集合的差集 。不存在的key被视为空集


sdiffstore


sdiffstore destination key key1…


此命令等同于sdiff,但它将结果保存到destination集合,而不是简单地返回结果集。如果destination集合已经存在,则将其覆盖

2、zset类型命令说明


命令名称


格式


说明


zadd


zadd key score member


将member元素及其score值加入到有序集key当中。

score值可以是整数值或双精度浮点数。


zrem


zrem key member


移除有序集key中的成员member,如果member不是有序集中的成员,那么不执行任何动作。当key存在但不是有序集类型时,返回一个错误


zcard


zcard key


返回有序集key的基数


zcount


zcount key min max


返回有序集key中,score值在min和max之间(默认包括score值等于min或max)的成员


zscore


zscore key member


返回有序集key中,成员member的score值


zincrby


zincrby key increment member


为有序集key的成员member的score值加上增量increment


zrange


zrange key start stop [WITHSCORES]


返回有序集key中,指定区间内的成员。其中成员的位置按score值递增(从小到大)来排序


zrevrange


zrevrange key start stop [WITHSCORES]


返回有序集key中,指定区间内的成员。其中成员的位置按score值递减(从大到小)来排列


zrangebyscore


zrangebyscore key min max [WITHSCORES] [LIMIT offset count]


返回有序集key中,所有score值介于min和max之间(包括等于min或max)的成员。有序集成员按score值递增(从小到大)次序排列


zrevrangebyscore


zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count]


返回有序集key中,score值介于max和min之间(默认包括等于max或min)的所有的成员。有序集成员按score值递减(从大到小)的次序排列。


zrank


zrank key member


返回有序集key中成员member的排名。其中有序集成员按score值递增(从小到大)顺序排列。排名以0为底,也就是说,score值最小的成员排名为0。


zrevrank


zrevrank key member


返回有序集key中成员member的排名。其中有序集成员按score值递减(从大到小)排序。排名以0为底,也就是说,score值最大的成员排名为0。


zremrangebyrank


zremrangebyrank key start stop


除有序集key中,指定排名(rank)区间内的所有成员。

区间分别以下标参数start和stop指出,包含start和stop在内


zremrangebyscore


zremrangebyscore key min max


移除有序集key中,所有score值介于min和max之间(包括等于min或max)的成员


zinterstore


zinterstore destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]


计算给定的一个或多个有序集的交集,其中给定key的数量必须以numkeys参数指定


zunionstore


zunionstore destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]


计算给定的一个或多个有序集的并集,其中给定key的数量必须以numkeys参数指定。默认情况下,结果集中某个成员的score值是所有给定集下该成员score值的和

3、set类型命令例子

3.1、为集合user,添加元素‘xiaobei’

127.0.0.1:6379> sadd user xiaobei

(integer) 1

3.2、查看集合user的所有元素

127.0.0.1:6379>smembers user

1)"xiaobei"

3.3、判断xiaobei是否是集合user的元素

127.0.0.1:6379>sismember user xiaobei

(integer) 1

3.4、移除集合user的元素 xiaobei

127.0.0.1:6379> sremuser xiaobei

(integer) 1

3.5、判断集合user的个数

127.0.0.1:6379> sadduser xiaobei

(integer) 1

127.0.0.1:6379> sadduser script-boy

(integer) 1

127.0.0.1:6379>scard user

(integer) 2

3.6、把集合user的元素script-boy移动到集合user1中

127.0.0.1:6379>smove user user1 script-boy

(integer) 1

127.0.0.1:6379>smembers user1

1)"script-boy"

3.7、求集合user和集合user1

127.0.0.1:6379>smembers user

1)"script-boy"

2) "xiaobei"

127.0.0.1:6379>smembers user1

1)"script-boy"

127.0.0.1:6379>sinter user user1

1)"script-boy"

3.8、把集合user和集合user1的交集保存在user2中

127.0.0.1:6379>sinterstore user2 user1 user

(integer) 1

127.0.0.1:6379>smembers user2

1)"script-boy"

3.9、求集合user和集合user1的并集

127.0.0.1:6379>sunion user user1

1)"script-boy"

2) "xiaobei"

3.10、求集合user和集合user1的并集保存在user2中

127.0.0.1:6379>sunionstore user2 user user1

(integer) 1

127.0.0.1:6379>smembers user2

1)"script-boy"

3.11、求集合user1对集合user的差集

127.0.0.1:6379>smembers user

1)"script-boy"

127.0.0.1:6379>smembers user1

1)"script-boy"

2) "xiaobei"

127.0.0.1:6379>sdiff user1 user

1) "xiaobei"

3.12、把集合user1对集合user的差集保存在user2

127.0.0.1:6379>sdiffstore user2 user1 user

(integer) 1

127.0.0.1:6379>smembers user2

1) "xiaobei"

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-10 01:31:11

小贝_redis set/zset类型学习的相关文章

小贝_redis key键值学习

redis 一般(key)类型 一.什么是一般key类型 二.查看一般类型命令 三.一般类型的使用例子 一.一般类型 从generic这个单词直译出来,因此叫一般类型or属性类型.redis是一个key-value的数据库,因此这里可以理解为是针对key的操作说明 二.查看一般类型命令 127.0.0.1:6379> help @generic DELkey [key ...] summary: Delete a key since: 1.0.0 DUMP key summary: Return

小贝_redis list类型学习

redis  list类型 一.查看list类型的命令 二.list命令具体解释 一.查看list类型的命令 1.在终端数据 help @list 127.0.0.1:6379>help @list BLPOP key [key ...] timeout summary: Remove and get the first element ina list, or block until one is ava ilable since: 2.0.0 BRPOP key [key ...] time

小贝_redis hash类型学习

Redis  Hash类型 一.查看hash类型的命令 二.操作hash命令具体解释 一.查看hash类型的命令 1.输入 [email protected] 127.0.0.1:6379>help @hash HDEL key field [field ...] summary: Delete one or more hash fields since: 2.0.0 HEXISTS key field summary: Determine if a hash field exists sinc

小贝_redis string类型学习

RedisString类型 一.查看string类型的命令 二.操作string例子 一.查看string类型的命令 1.打开redis客户端,输入help 127.0.0.1:6379>help redis-cli2.8.19 Type:"help @<group>" to get a list of commands in <group> "help <command>" for helpon <command&g

小贝_redis学习目标

redis学习目标 一.Nosql介绍 二.redis介绍 三.redis适用场合 四.redis的学习目标 一.Nosql介绍 Nosql(Nosql=Not Only SQL),意为反sql运动,它指的是非关系数据库. Nosql是以key-value的形式进行存储,和传统的关系型数据库不一样,不一定遵循传统数据库的一些基本要求,比如说遵循sql标准.acid标准.表结构等等,这类数据库主要有以下的特点: 非关系型的.分布式的.开源的.水平可拓展的. Nosql有这些特点: a.处理超大量的

小贝_redis 高级应用-事务

redis高级应用-事务 一.redis的事务 二.redis实现事务 三.redis事务问题 一.redis的事务 事务提供了一种"将多个命令打包,然后一次性.按顺序地执行"的机制, 并且事务在执行的期间不会主动中断 -- 服务器在执行完事务中的所有命令之后, 才会继续处理其他客户端的其他命令. 二.redis实现事务 redis 通过 multi .disacrd.exec 和 watch四个命令来实现事务功能 1.redis事务简单例子 127.0.0.1:6379> mu

小贝_redis高级应用-发布与订阅

redis高级应用-发布与订阅 一.发布与订阅(pub/sub)功能 二.发布与订阅(pub/sub)机制 三.redis发布与订阅(pub/sub)的实现 一.发布与订阅(pub/sub)功能 Pub/Sub功能(meansPublish, Subscribe)即发布及订阅功能.基于事件的系统中,Pub/Sub是目前广泛使用的通信模型,它采用事件作为基本的通信机制,提供大规模系统所要求的松散耦合的交互模式:订阅者(如客户端)以事件订阅的方式表达出它有兴趣接收的一个事件或一类事件:发布者(如服务

小贝_redis web管理界面工具安装

RedisWEB管理界面工具安装 一.概述 二.文件下载 三.安装过程 一.概述 1.因为redis是基于C/S的方式开发.也就是说,仅仅要满足于redis的client通信要求的,都能够作为redis的client,进行连接服务端进行管理操作.这里採用的是基于web方式的来管理redis. 2.基于web的方式的优缺点: 2.1.长处: a.在client这边不须要多余操作.仅仅需有个浏览器就可以 2.2.缺点: a.因为是web方式,因此,须要server提供web服务,假设web服务配置不

小贝_redis 高级应用-主从复制

redis 高级应用-主从复制 一.为什么需要主从复制 二.主从复制的特点和过程 三.配置主从复制 四.验证主从复制是否生效 五.如何查看谁主谁从以及常见问题   一.为什么需要主从复制       虽然redis运行于内存,处理速度快.但是,仍不可避免出现一些异常,像服务器宕机等等情况,为了提高应用的可用性.需要对redis进行主从复制: 1.分担访问压力 2.由于主从拥有相同的数据库副本,从而可以进行冗余,在主服务器出现异常时,从服务器可以及时替换,确保正常使用 二.主从复制的特点和过程