MyException - 我的异常网
当前位置:我的异常网» 数据库 » 4:redis的sets类型相关操作(有序和无序集合)

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

www.MyException.Cn  网友分享于:2014-07-10  浏览:0次
四:redis的sets类型相关操作(有序和无序集合)
================四五种(有序和无序集合):sets类型(就是集合)=============
     一介绍:  set表示集合,添加是是随意添加的----->无序集合
        
        set是集合,它是string类型的无序集合。
        set是通过hash table实现的,添加,删除和查找的复杂度都是0(1)。
        对集合我们可以取并集、交集、差集。
        通过这写操作我们可以实现sns中的好友推荐和blog的tag功能
    
    1:sadd
            向名称key的set中添加元素(唯一的)
            例:sadd myset1 one   ---->向集合myset1中添加元素one
                sadd myset1 two
            查看:smembers myset1
    2:srem
            删除名称为key的set中的元素
            例:sadd myset2 one
                srem myset2 one  --->删除one元素
    3:spop
            随机返回并删除名称为key的set中一的个元素
            例:spop myset3    --->随机弹出删除的元素
    4:sdiff
            返回所有给定key与第一个key的差集
                myset1=1,2  myset2=3,2    --返回1
            例:sdiff myset1 myset2    ---->谁在前面以谁为标准
    4:sdiffstore
            返回所有给定key与第一个key的差集,并将结果保存在一个新的key中
            例:sdiffstore myset4 myset2 myset3 ---->将myset2与myset3的差集弹出并保存到myset4中
    5:sinter
            返回所有给定key的交集(交集:里面相同的元素)
                       two,one three,one     --->one
            例:sinter myset2 myset3  --->之间的交集
    
    6:  sinterstore
            返回所有给定key与第一个key的交集,并将结果保存在一个新的key中
            例:sinterstore myset4 myset2 myset3 ---->将myset2与myset3的交集保存到myset4中
    7:sunion
            返回所有给定key的并集
            例:sunion myset1 myset2   --->取并集
    8:sunionstore
            返回所有给定key的并集,并保存到新的key中
            例:sunionstore myset4 myset1 myset2   --->取并集并 保存到myset4中
    9:smove
            从第一个key中对应的set中移除某个元素并添加到第二个对应的key中
            例:smove myset2 myset7 three  --->将myset2中的元素移动到myset7里面
    10:scard
            返回名称为key的set的元素个数
            例:scard myset8   ---->返回元素个数
    11:sismember
            测试某个元素是否是名称为KEY的set中的元素
            例:sismember myset2 two   --->测试two是否是myset2中的元素
    12:srandmember(无序的取)
            随机返回名称为key的set的一个元素,但不删除元素
            例:srandmember myset3   --->随机去除myset3的元素
    13:
    
    二介绍:  sorted sets=========》有序集合
    
            sortes set是set的一个升级版本,它在set的基础上增加了一个顺序属性,
            这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的值调整顺序。
            可以理解为有两列的MySQL表,一列存value,一列存顺序。操作中key理解为zset(有序集合的名称)的名字
    1:    zadd  ---重复插入时候会不成功,且将顺序更新
            向名称为key的zset中添加元素member,score用于排序,如果该元素存在,则更新其顺序
            例:zadd myzset1 1 one   --->  插入了one并指定顺序号
    zrange        
            取值:zrange myzset1 0 -1  -----> 取myzset1的所有元素
                  zrange myzset1 0 -1 withscores  ---->取出元素并吧顺序号输出
    2:zrem 删除有序集合中的一个元素
            删除名称为key的zset中的元素member
            例子:zrem zset1 two   --->删除two元素
    3:zincrby
            如果在名称为key的zset中已经存在元素member,则改元素的score
            增加increment(顺序号)否则向该集合中添加元素,其score的值为increment
            例:zincrby ssett1 2 one   ---->对顺序号减
                zincrby ssett1 -2 one  ---->对顺序号加
    4:zrank
            返回名称为key的zset中member元素的排名(按score从小到大排序)即下标
            例:zrange zset2 0 -1 withscores
                zrank zset2 four   ---->返回一个元素的索引值
    5:zrevrank
            返回名称为key的zset中member元素的排名(按score从大到小排序)即下标
            例:zrevrank zset2 four ---->和zrank顺序相反
    6: zrevrange
            值按降序排序(score从大到小排序)
            例:zrevrange zset2 0 -1 withscoress
    7:zrangebyscore
            返回集合中score在给定区域的元素
            例:zrangebyscore zset2 2 4 withscores  --->取下标2,3,4,且有序返回
    8:zcount
            返回集合中score在给定区域的数量
            例:zrangebyscore zset2 2 4     ----->2,3,4  ,就会返回3表示有3个元素
    9:zcrad
            返回集合元素中的个数
            zcrad zset2    ---->zset2里面所有元素的个数
    10:zremrangebyrank
            删除集合中排名在给定区间的元素(按照索引删除)
            例:zremrangebyrank zset2 1 1  ---->删除索引为 1到1的(1),2,3(删除2和3)
    11:zremrangebyscore
            删除集合中score给定区间的元素(按照顺序号删除)
            例:zremrangebyscore zset2 2 5   --->删除顺序号为2到5
    
    ========================================END========================================

文章评论

10个调试和排错的小建议
10个调试和排错的小建议
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
漫画:程序员的工作
漫画:程序员的工作
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
中美印日四国程序员比较
中美印日四国程序员比较
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
程序员的鄙视链
程序员的鄙视链
那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
我的丈夫是个程序员
我的丈夫是个程序员
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
每天工作4小时的程序员
每天工作4小时的程序员
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
代码女神横空出世
代码女神横空出世
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
总结2014中国互联网十大段子
总结2014中国互联网十大段子
程序员应该关注的一些事儿
程序员应该关注的一些事儿
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
 程序员的样子
程序员的样子
我是如何打败拖延症的
我是如何打败拖延症的
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
为什么程序员都是夜猫子
为什么程序员都是夜猫子
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
那些争议最大的编程观点
那些争议最大的编程观点
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
旅行,写作,编程
旅行,写作,编程
程序员和编码员之间的区别
程序员和编码员之间的区别
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
一个程序员的时间管理
一个程序员的时间管理
程序员都该阅读的书
程序员都该阅读的书
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
Google伦敦新总部 犹如星级庄园
Google伦敦新总部 犹如星级庄园
鲜为人知的编程真相
鲜为人知的编程真相
程序员必看的十大电影
程序员必看的十大电影
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有