有序集合开头插入元素 redis 有序集合组个数_权重


列表,位图,string,哈希就是字典套字典,help hash这样所有的命令都可以看set现在依然是kv,v换成set,就是一个嵌套结构,元素是add,添加进去,一个key,里面value部分,setl里叫成员,member,也就是可以加很多member。
是一个无序的去重的

有序集合开头插入元素 redis 有序集合组个数_权重_02


元素可以认为就一种类型,所有的复合结构里面真正存的是就一种类型,这个类型就是字符串

有序集合开头插入元素 redis 有序集合组个数_并集_03


card就是基数,在统计里非常重要,等于在select的时候用到的distinct,基数就是指的是有一大堆样本,去重之后还有多少个个体,不用lens就是因为set天生去重

有序集合开头插入元素 redis 有序集合组个数_升序_04


对于在python里的容器类型,知道它们长度是不需要遍历的,都给你存好了

有序集合开头插入元素 redis 有序集合组个数_权重_05

这里的元素应该用这种方式去看

有序集合开头插入元素 redis 有序集合组个数_升序_06


这个就是python里的in操作,这种操作对于set效率还是比较高的,列表是链表,要从头到尾走一遍,set的in操作效率还是比较高的

有序集合开头插入元素 redis 有序集合组个数_升序_07


两个set集合,看起来一样,但是未必顺序就一样

有序集合开头插入元素 redis 有序集合组个数_有序集合开头插入元素 redis_08


这个顺序,跟我们录入的顺序一样

有序集合开头插入元素 redis 有序集合组个数_有序集合开头插入元素 redis_09


再加一个,这两个其实有时候会不一样,看演示的时候的情况,告诉我们即时两个元素完全相同的,从smembers看,不能保证里面顺序是否一致。
这个输出之后是有顺序的,但是不敢保证每次列出的顺序是一致的

有序集合开头插入元素 redis 有序集合组个数_并集_10

f1有5个元素,srandmember 这样是随机取元素

有序集合开头插入元素 redis 有序集合组个数_权重_11


只有5个,就算要6个也只有5个

有序集合开头插入元素 redis 有序集合组个数_并集_12


有序集合开头插入元素 redis 有序集合组个数_升序_13


没有就随机重复拿几个

有序集合开头插入元素 redis 有序集合组个数_有序集合开头插入元素 redis_14


正向10个,还是有几个拿几个,-10就可以重复拿,正数和负数的绝对值小于等于它的长度,尽量给你不重复去拿,超过长度就不一样了,反向的会给你重复去拿,正向的不会

有序集合开头插入元素 redis 有序集合组个数_并集_15


有序集合开头插入元素 redis 有序集合组个数_并集_16


pop就是随机弹出一个,链表的pop是左边弹出还是右边弹出,是有头和尾的

有序集合开头插入元素 redis 有序集合组个数_有序集合开头插入元素 redis_17


SMOVE,是从源到目标移动的元素

有序集合开头插入元素 redis 有序集合组个数_权重_18


有序集合开头插入元素 redis 有序集合组个数_升序_19

集合运算

算差集sdiff,sdiffstore 算差集,同时把结果存储在目标key中

有序集合开头插入元素 redis 有序集合组个数_升序_20


这两个集合求差集,得出来的结果是,789

有序集合开头插入元素 redis 有序集合组个数_升序_21


交集部分

有序集合开头插入元素 redis 有序集合组个数_有序集合开头插入元素 redis_22


得到的结果正好是123 456

有序集合开头插入元素 redis 有序集合组个数_有序集合开头插入元素 redis_23


并集是所有集合的并集

有序集合开头插入元素 redis 有序集合组个数_并集_24


123 456 789 999

有序集合开头插入元素 redis 有序集合组个数_升序_25


当用户访问另一个用户的时候,会显示两个用户共同关注哪些相同的用户,应该用交集

有序集合开头插入元素 redis 有序集合组个数_升序_26


这样取交集就是共同的好友,其实你登录显示的好友已经放在redis中了

有序集合开头插入元素 redis 有序集合组个数_有序集合开头插入元素 redis_27


放在redis里就这么放,比如101号用户,多少好友,这两个取交集即可

有序集合开头插入元素 redis 有序集合组个数_权重_28

有序集合SortedSet

想办法给个数值就可以排序了,我们把这个数值叫得分,首先需要是个set,只不过里面的元素需要关联一个浮点数的值,这个值称为score得分,会按照分支,由小到大,默认应该是升序的,排列所有的元素。分值可以相同,会默认按照ascii码字符排序来解决排序问题

有序集合开头插入元素 redis 有序集合组个数_升序_29


这个分支可以当做商品的贵贱来排

有序集合开头插入元素 redis 有序集合组个数_权重_30


员工的薪水也可以作为排序

有序集合开头插入元素 redis 有序集合组个数_并集_31


有序集合开头插入元素 redis 有序集合组个数_权重_32


有的前缀都是z开头的

有序集合开头插入元素 redis 有序集合组个数_权重_33


set用s,l是列表,最简单都是留给字符串的,hash是h开头

有序集合开头插入元素 redis 有序集合组个数_权重_34

基数,就是返回不同元素个数

有序集合开头插入元素 redis 有序集合组个数_有序集合开头插入元素 redis_35


Zcount 指的是这个key,用这个分值来取最大值和最小值区间

有序集合开头插入元素 redis 有序集合组个数_升序_36


比如价格在三块钱,到5块钱之间的水果列出来,只不过求的是数值

有序集合开头插入元素 redis 有序集合组个数_权重_37


zscore就是把你给的成员的分值打印一下

有序集合开头插入元素 redis 有序集合组个数_并集_38


分值就可以增长和减少,increment这个值写成负数就是减分

有序集合开头插入元素 redis 有序集合组个数_升序_39


range就是区间,Zrange指的是返回指定索引区间的元素,它排序就用索引,有序才能用索引,set没法索引,因为是无序,有序set就有序了,有序就可以用这样个区间去访问,访问的时候是带key的,后面加withscore这样一个参数,告诉它带所有的参数

有序集合开头插入元素 redis 有序集合组个数_权重_40


但是有一些分值是一样的,比如好几个人月薪一样,按照字典序进行排序,因为默认升序,字典序也是升序来排的,默认按照score从小到大排,从大到小,就选择zrevrange,这样一般是分值一样,谁在前谁在后的问题了

有序集合开头插入元素 redis 有序集合组个数_并集_41

这两个是相反顺序

有序集合开头插入元素 redis 有序集合组个数_升序_42


返回元素的排名,rank就是排名的意思,返回这个member排第几

有序集合开头插入元素 redis 有序集合组个数_有序集合开头插入元素 redis_43


zrevrank,告诉你这个menber反转之后排第几,其实就是索引

有序集合开头插入元素 redis 有序集合组个数_权重_44


有序集合开头插入元素 redis 有序集合组个数_有序集合开头插入元素 redis_45


有序集合开头插入元素 redis 有序集合组个数_权重_46


分值区间,range指的是索引区间,所以不能这么写

有序集合开头插入元素 redis 有序集合组个数_升序_47


这里是从0开始,默认是升序,0-1是david在前

有序集合开头插入元素 redis 有序集合组个数_升序_48


如果要薪水前10名,用reverse版本,就是降序排,withscores还可以带上分数

有序集合开头插入元素 redis 有序集合组个数_升序_49


range就是按照你给定的索引位置来得到

还可以在分数上增加减少

有序集合开头插入元素 redis 有序集合组个数_有序集合开头插入元素 redis_50


倒排取前几名很有用,带不带分值由你决定

有序集合开头插入元素 redis 有序集合组个数_并集_51


告诉你当前的排名

有序集合开头插入元素 redis 有序集合组个数_权重_52


第4,索引正好是3

有序集合开头插入元素 redis 有序集合组个数_有序集合开头插入元素 redis_53


正好给了一个score区间

有序集合开头插入元素 redis 有序集合组个数_有序集合开头插入元素 redis_54


这里默认还是升序

有序集合开头插入元素 redis 有序集合组个数_并集_55


这里也有reverse版本

有序集合开头插入元素 redis 有序集合组个数_并集_56


这个还可以用偏移

有序集合开头插入元素 redis 有序集合组个数_升序_57


limit是返回几个,offset是偏移几个,help查看如何写

有序集合开头插入元素 redis 有序集合组个数_并集_58


其实offset可以直接这么写,偏移掉一个,一般拿到分值就带上withscores

有序集合开头插入元素 redis 有序集合组个数_升序_59


其实往往用的都是倒排而不是正排

加了括号就不是闭区间了,3500就不出现了

有序集合开头插入元素 redis 有序集合组个数_并集_60


一般就只能在前面加括号,这是加括号可以改变边界

有序集合开头插入元素 redis 有序集合组个数_权重_61


正无穷和负无穷

有序集合开头插入元素 redis 有序集合组个数_并集_62


有序集合开头插入元素 redis 有序集合组个数_并集_63


zrem是移除元素,元素没了,带的分值也没了,元素不存在就忽略掉

有序集合开头插入元素 redis 有序集合组个数_有序集合开头插入元素 redis_64


可以指定排名也就是索引范围

有序集合开头插入元素 redis 有序集合组个数_有序集合开头插入元素 redis_65


指定分值范围移除

有序集合开头插入元素 redis 有序集合组个数_并集_66


有序集合开头插入元素 redis 有序集合组个数_权重_67


现在的集合运算带上了一个分数,带上分值,集合运算就发生了一些变化

有序集合开头插入元素 redis 有序集合组个数_权重_68


一定要有目标,存储起来

有序集合开头插入元素 redis 有序集合组个数_有序集合开头插入元素 redis_69


求并集有一个目标(求好的并集存这里),numkeys就是指key的数量(比如后面要求并集的有两个,就写个2,然后写 看key1 key2)

有序集合开头插入元素 redis 有序集合组个数_并集_70


weights 权重可有可无,有了几个key,就写几个权重,每个权重都是分别给他们配的

有序集合开头插入元素 redis 有序集合组个数_并集_71


aggregate采用什么方式的聚合运算,求最大值,还是最小值

有序集合开头插入元素 redis 有序集合组个数_权重_72


现在有考试成绩

有序集合开头插入元素 redis 有序集合组个数_并集_73


有序集合开头插入元素 redis 有序集合组个数_升序_74


求聚合运算,peter是90+80

有序集合开头插入元素 redis 有序集合组个数_并集_75


这两个一模一样

有序集合开头插入元素 redis 有序集合组个数_升序_76


zrange,从哪到哪,拿到基数就知道整个长度,然后带上分数

有序集合开头插入元素 redis 有序集合组个数_升序_77


配一个权重

有序集合开头插入元素 redis 有序集合组个数_升序_78


125,,30

有序集合开头插入元素 redis 有序集合组个数_权重_79


也就是这里是分别配权重,真的要做聚合运算,每个都要加权重才比较科学,(不然就是日元直接+美元,不科学)

有序集合开头插入元素 redis 有序集合组个数_并集_80


交集也是类似,几乎一模一样

有序集合开头插入元素 redis 有序集合组个数_有序集合开头插入元素 redis_81


这些需要参考数据做综合的处理

有序集合开头插入元素 redis 有序集合组个数_并集_82


榜单到最后其实就是top n的问题,看网络的点击量,还有CD,大部分情况下用音乐ID作为唯一标识

有序集合开头插入元素 redis 有序集合组个数_有序集合开头插入元素 redis_83


python的redis库2.0的语法和3.0的有点区别,
显示所有的点击量都是为1 ,后面点击量上去了,这些点击量就增加到数据上了

有序集合开头插入元素 redis 有序集合组个数_有序集合开头插入元素 redis_84

有序集合开头插入元素 redis 有序集合组个数_升序_85


升序,从小到大,按照score来排

有序集合开头插入元素 redis 有序集合组个数_并集_86


排行榜是倒着取,取分值0-9,正好10个,拿到排行榜就哭打印了,true就是withscore,打印出来就有音乐名称和分数

有序集合开头插入元素 redis 有序集合组个数_有序集合开头插入元素 redis_87

3。0库怎么写

前面加key,后面写字典

有序集合开头插入元素 redis 有序集合组个数_有序集合开头插入元素 redis_88

下面的语法两个换了地方

有序集合开头插入元素 redis 有序集合组个数_并集_89


有序集合开头插入元素 redis 有序集合组个数_有序集合开头插入元素 redis_90

有序集合开头插入元素 redis 有序集合组个数_升序_91


时间戳是由小到大的,想看最后10条,就倒排时间戳就拿到了,有些网站的评论是异步的方式,先让你的评论显示在那里,但是其实刷新一下就没了,后面慢慢入库,但是把评论到redis里,就可以一直看,redis里的数据隔一段时间慢慢入库就行了

有序集合开头插入元素 redis 有序集合组个数_权重_92


取多少条到多少条,反正是按时间戳排序,跟分页一个道理

有序集合开头插入元素 redis 有序集合组个数_有序集合开头插入元素 redis_93

有序集合开头插入元素 redis 有序集合组个数_有序集合开头插入元素 redis_94

**排行榜,一般排行榜可能用销售量来决定的 **

有序集合开头插入元素 redis 有序集合组个数_并集_95


有序集合开头插入元素 redis 有序集合组个数_升序_96


01代表第一天,02第二天,java的书买了1000本,redis2000本,第二天和第三天也是如此来做,这样求销售前10名

有序集合开头插入元素 redis 有序集合组个数_并集_97


对这三个求并集,得出一个新的键存下来,求并集的意思是前三个相同的key做求sum,但是这里的值是累计值

有序集合开头插入元素 redis 有序集合组个数_权重_98


既然是累计值,最后一天就是要统计的表单,最后一条的总是累计下来的最大值都在最后一条

有序集合开头插入元素 redis 有序集合组个数_并集_99


所以要选max,然后最后出来的数据倒排一下

有序集合开头插入元素 redis 有序集合组个数_有序集合开头插入元素 redis_100


如果多个集合求并集之后,会生成一个巨大集合,要思考下内存是否够,大集合运算最怕内存耗尽

有序集合开头插入元素 redis 有序集合组个数_升序_101


如果是统计的每天的销售绑定,那么只要求和就可以了,最后聚合运算求sum,最后倒排一下榜单就产生了

有序集合开头插入元素 redis 有序集合组个数_并集_102