文档章节

Redis学习笔记---数据类型二(set、sortedset)

ivan-Zhao
 ivan-Zhao
发布于 2015/12/12 17:13
字数 848
阅读 145
收藏 10

这篇是接着上篇来的,所以标号就继续了~~~~

四、set

     介绍:
    set集合元素是不重复的无序的。set类型与list类型有相似之处,如图:
    
    
    命令:
    ①sadd/smembers/srem/sismember  添加/获取/删除/是否是set的元素
        sadd set a,sadd set b,
        smembers set(返回set集合所有的元素) srem set a, sismember b
        sadd set1 a b c
    ②sdiff/sinter(交集)/sunion(并集)
        sdiif set set1 返回差集,即返回set有的而set2中没有
        sinter set set1 返回两个set都有的
        sunion set set1 返回两个的都有的
    ③sdiffstore/sinterstore/sunionstore
        将②中的数据存储  sdiffstore a1 set set1 存到a1中 a1也是一个set集合
    ④scard(获取集合长度)/spop(随机从集合中取出并删除一个元素)
        scard set 返回set集合长度,spop set 随机从set中弹出一个元素
    ⑤srandmember key [count]
        如果 count 为正数,且小于集合基数,那么命令返回一个包含 count 个元素的数组,数组中的元素各不相同。

        如果 count 大于等于集合基数,那么返回整个集合。
        如果 count 为负数,那么命令返回一个数组,数组中的元素可能会重复出现多次,而数组的长度为 count 的绝对值。

五、sortedset    

    介绍:
    有序集合,在set集合类型的基础上为集合中的每个元素都关联了一个分数,这样可以很方便的获得分数最高的N个元素(topN)。
    有序集合类型和列表类型的差异
    相同点
        (1)二者都是有序的
        (2)二者都可以获得某一范围的元素
    不同点
        (1)列表类型是通过双向链表实现的,获取靠近两端的数据速度极快,当列表中元素增多后,访问中间的数据速度会很慢,所以它比较适合很少访问中间元素的应用
        (2)有序集合类型是使用散列表和跳跃表(skip list)实现的,所以即使读取位于中间部分的数据速度也很快
        (3)列表中不能简单的调整某个元素的位置,但是有序集合可以(通过更改这个元素的分值)
        (4)有序集合要比列表类型更耗费内存
    命令:
    ①zadd/zscore/zrange/zrevrange/  添加/获取指定元素分数/从小到大返回/从大到小返回
        zadd zset 10 a zadd zset 20 b zadd zset 5 c
        zscore zset b(返回20)
        zrange zset 0 -1 返回(c a b)有序
        zrevrange zset 0 -1 (b a c)
    ②zrangebyscore(默认是闭区间,可使用"("使用开区间)
        zrangebyscore zset 0 10 获取zset中0分到10分的元素 这里返回c和a
        zrangebyscore zset 0 (10 获取zset中0分到10分的元素 这里返回c
    ③zincrby/zcard/zcount(获取指定分数范围的元素个数)
        zincrby zset 6 c 让zset中c元素的值加6
        zcard zset 返回zset中元素个数
        zcount zset 0 10 指定分数范围的元素
    ④zrem/zremrangebyrank/zremrangebyscore
        zrem zset a
        zremrangebyrank zset 0 1 角标区间删除
        zremrangebyscore zset 0 10 分数范围删除
扩展:+inf(正无穷)    -inf(负无穷)

© 著作权归作者所有

ivan-Zhao
粉丝 10
博文 33
码字总数 29110
作品 0
深圳
程序员
私信 提问
redis命令及对应jedis操作(一)-String类型

我们知道学习编程知识,先要搭建环境,首先需要下载redis工具包,下载时需要注意,redis的偶数版是表示稳定版(2.4,2.6等),奇数版表示非稳定版(2.5,2.7等),我下载的是2.6的,最新版本...

laoyao
2014/07/26
1K
3
redis 系列二 -- 常用命令

1.基础命令 info ping quit save dbsize select flushdb flushall 2.键命令 2.1 set 直接赋值 set a a 2.2 get 取值 get a 2.3 exists 是否存在 exists a 2.4 expire 设置剩余时间 秒 expire......

imbiao
2018/09/24
15
0
Redis学习笔记之基本数据结构

Redis基础数据结构 Redis有5种基本数据结构:String(字符串)、list(列表)、set(集合)、hash(哈希)、zset(有序集合) 字符串string 字符串类型是Redis的value最简单的数据结构,类似与Java语言...

smileNicky
2018/09/26
0
0
java中Redis5大基本类型的用法

redis存储格式 基本用法 Jedis工具类 redis配置文件 String测试 Hash测试 List测试 Set测试 SortedSet 测试 本文转载自【JAVA葵花宝典】 公众号内回复“1”带你进粉丝群...

程序员之家_
2018/09/07
0
0
如何优雅地删除Redis大键

关于Redis大键(Key),我们从[空间复杂性]和访问它的[时间复杂度]两个方面来定义大键。 前者主要表示Redis键的占用内存大小;后者表示Redis集合数据类型(set/hash/list/sorted set)键,所含有...

fzxu_05
2016/08/16
122
0

没有更多内容

加载失败,请刷新页面

加载更多

linux 磁盘不足异常

linux 报 No space left on device 异常 ,则是磁盘不足 ,导致异常 运行 df -h 命令查询磁盘使用率,如果有100%,则查找目录大日志文件删除 1.磁盘不足导致系统应用写入文件失败,如系统日志...

zaolonglei
37分钟前
3
0
即学即用的 30 段 Python 实用代码

☞ 分享:最全最新的Python学习大礼包 ☜ 点击查看 编译:Pita & AI开发者,作者:Fatos Morina Python是目前最流行的语言之一,它在数据科学、机器学习、web开发、脚本编写、自动化方面被许...

Object_Man
38分钟前
5
0
The server time zone value 'EDT' is unrecognized or represents more than one time zone.

2019-10-14 18:07:43.714 ERROR 74363 --- [Druid-ConnectionPool-Create-1855026648] com.alibaba.druid.pool.DruidDataSource : create connection SQLException, url: jdbc:mysql://10.30......

yizhichao
51分钟前
8
0
html加载顺序以及影响页面二次渲染额的因素

本文转载于:专业的前端网站➱html加载顺序以及影响页面二次渲染额的因素 浏览器请求发往服务器以后,返回HTML页面,页面内容开始渲染,具体的执行顺序为: 1. 浏览器开始载入html代码,发现<...

前端老手
53分钟前
9
0
BeginnersBook JSP、JSTL、Servlet 教程

来源:ApacheCN BeginnersBook 翻译项目 译者:飞龙 协议:CC BY-NC-SA 4.0 贡献指南 本项目需要校对,欢迎大家提交 Pull Request。 请您勇敢地去翻译和改进翻译。虽然我们追求卓越,但我们并...

ApacheCN_飞龙
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部