redis sets类型及操作

sets类型及操作
set是集合,它是string类型的无序集合。通过hash table实现,添加、删除、查找的复杂度都是0(1)。对集合我们可以实现取交际、差集并集。通过这些操作我们可以实现SNS中的好友推荐和blog的tag(标签)功能

sadd
    向集合中添加元素,成功返回1,失败返回0,重复值添加为失败
    例如:
    sadd myset1 hello

smembers
    查看集合中的元素
    例如:
    smembers myset1

scard
    查看集合中的元素个数
    例如:
    scard myset1

sismember
    测试元素在不在集合中,存在返回1,不存在返回0
    例如:
    sismember myset1 two

srem
    删除集合中的元素,成功返回1,失败返回0
    例如:
    srem myset1 hello

spop
    随机从集合中弹出一个元素,并删除,返回弹出元素的值
    例如:
    spop myset1

sdiff
    返回第一个集合在第二个集合中的差集部分
    例如:
    myset1 中有 three two
    myset2 中有 two one
    sdiff myset1 myset2  //不会返回 three one 只会返回 three

sdiffstore
    返回第一个集合在第二个集合中的差集部分,并将结果保存到另一个集合中
    例如:
    sdiffstore myset4 myset2 myset3  //把myset2在myset3中的差集保存在myset4中

sinter
    返回所有集合的交集
    例如:
    sinter myset1 myset2

sinterstore
    返回所有集合的交集,并保存,用法同sdiffstore

sunion
    返回所有集合的并集
    例如:
    sunion myset1 myset2

sunionstore
    返回所有集合的并集,并保存,用法同sdiffstore

smove
    把第一个集合中的指定元素,移动到第二个集合
    例如:
    smove myset2 myset1 three

srandmember
    随机返回集合中的一个元素,不删除元素

sorted sets
是对set的一个升级版本,它在set的基础上增加了一个顺序属性,这个属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的值调整顺序。

zadd
    向集合中添加元素,member,score用于排序,如果该元素存在,则更新其顺序
    例如:
    zadd myzset1 1 one

zrange
    查看zset集合中的元素
    例如:
    zrange myzset1 0 -1 withscores    //withscores 输出顺序号,不是必须

zrem
    删除值为指定的元素
    例如:
    zrem myset1 two

zincrby
    向集合中添加元素,如果元素已经存在,则该元素的score增加increment的值,否则向该集合中添加该元素,其score的值为increment
    例如:
    zincrby myzset1 2 four

zrank
    返回集合中元素的排名,按score从小到大的顺序,即下标,和数组一样从0开始
    例如:
    zrank myzset1 four

zrevrank
    和zrank一样,不同是从大到小排序

zrevrange
    返回集合中的结果,降序排序
    例如:
    zrevrange myzset1 0 -1 withscores

zrangebyscore
    返回指定返回的元素
    例如
    zrangebyscore myzset1 2 3 withscores
    
    zcount
    返回集合中score在给定区间的元素的数量
    例如:
    zcount myzset1 2 4

zremrangebyrank
    删除集合中指定索引范围内的元素
    例如:
    zremrangebyrank myzset1 1 3

zremrangebyscore
    删除集合中指定score范围内的元素
    例如:
    zremrangebyscore myzset1 1 2

时间: 2024-07-28 15:32:08

redis sets类型及操作的相关文章

四:redis的sets类型相关操作(有序和无序集合)

================四五种(有序和无序集合):sets类型(就是集合)============= 一介绍:  set表示集合,添加是是随意添加的----->无序集合 set是集合,它是string类型的无序集合. set是通过hash table实现的,添加,删除和查找的复杂度都是0(1). 对集合我们可以取并集.交集.差集. 通过这写操作我们可以实现sns中的好友推荐和blog的tag功能 1:sadd 向名称key的set中添加元素(唯一的) 例:sadd myset1 one 

redis之sorted sets类型及操作

sorted sets类型及操作 sorted set是set的一个升级版本,它在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的值调整顺序.可以理解为有两列的mysql表,一列存value,一列存顺序.操作中key理解为zset的名字. 和set一样sorted set也是string类型元素的集合,不同的是每个元素都会关联一个double类型的score.sorted set的实现是skip list和hash table的混合体.

redis之sets类型及操作

sets类型及操作set是集合,和我们数学中的集合概念相似,对集合的操作有添加删除元素,有对多个集合求交并差等操作,操作中key理解为集合的名字.set的是通过hash table实现(即set并没有顺序)的,所以添加.删除和查找的复杂度都是O(1).hash table会随着添加或者删除自动的调整大小.需要注意的是调整hash table大小时候需要同步(获取写锁)会阻塞其他读写操作,可能不久后就会改用跳表(skip list)来实现,跳表已经在sorted set中使用了.关于set集合类型

Redis学习第二课:Redis Hash类型及操作

Redis hash是一个string类型的field和value的映射表.它的添加.删除操作都是O(1)(平均).hash特别适用于存储对象.相较于对象的每个字段存在单个string类型.将一个对象存储在hash类型中会占用更小的内存,并且可以更方便的存取整个对象. hset:设置hash field为指定值,如果key不存在,则先创建. hget:获取指定的hash field. 127.0.0.1:6379>hset user:001 name Tom (integer)1 127.0.0

Redis常用类型数据操作

sortedset: 添加: zadd key score1 member1 score2 member2...  zad mysort 90 laosong 100 zhangsan 获得:zscore key member zscore mysort laosong 统计成员个数  zcard key zcard mysort 删除zrem key member1[member2 member3...] zrem mysort zhangsan 范围查询zrange key start en

Redis字符串类型的操作

set key value [ex 秒数] / [px 毫秒数] [nx] /[xx] 如: set a 1 ex 10 , 10秒有效 Set a 1 px 9000  , 9秒有效 注: 如果ex,px同时写,以后面的有效期为准 如 set a 1 ex 100 px 9000, 实际有效期是9000毫秒  nx: 表示key不存在时,执行操作 xx: 表示key存在时,执行操作 mset multi set , 一次性设置多个键值 例: mset key1 v1 key2 v2 ....

redis 简介与常用操作

简介 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有序集合).这些数据类型都支push/pop,add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的.在此基础上,redis支持各种不同方式的排序.与memcached一样,为了保证效率,数据都是缓存在内存中.区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,

Redis详解:sorted sets数据类型及操作

sorted set是set的一个升级版本,它在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的值调整顺序.可以理解为有两列的mysql表,一列存value,一列存顺序.操作中key理解为zset的名字. 系列文章: Redis详解:strings数据类型及操作 Redis详解:hashes数据类型及操作 Redis详解:lists数据类型及操作 Redis详解:sets数据类型及操作 和set一样sorted set也是string类

一:redis 的string类型相关操作

*redis客户端中的使用: =============一种:string类型的方法================ 介绍:string是redis的最简单类型,一个key对应一个value,string类型是二进制安全的. redis的string可以包含任何数据,比如jpg图片或者序列化的对象 1:一个key只包含一个value值,当设置相同值时=会覆盖 设置值:set name leyangjun 获取值:get name 2:setnx:(会判断设置的值是否存在,不存在则设置) 设置ke