sorted-set 中的成员在集合中的位置是有序的
存储sorted-set常用命令
添加元素:zadd sort1 5 a 4 b 6 c(我们添加集合sort1 元素是a,b,c 评分分别是5,4,6,集合里的排序是根据评分从小到大排序的)
获得元素:zrange sort1 0 -1(zrange是查找元素,-1代表是最后一个,如果继续进行添加的话,加入元素集合里面已经有了,则覆盖,加入添加的元素不在集合中,则添加进去)zscore sort1 b通过zscore获取b的评分
删除元素:zrem sort1 b
范围查询:zcard sort1(查看集合里元素的个数),zrange sort1 0 -1 withscores (withscores 把评分也显示出来)
扩展命令:
zrevrange sort1 0 -1 withscores(zrevrange 降序排列)
zremrangebyrank sort1 0 2(zremrangebyrank 根据排名来删除元素 删除3个)
zremrangebyscore sort1 10 16(zremrangebyscore 根据具体评分范围来删除元素)
zrangebyscore sort1 18 23 withscores(zrangebyscore 根据评分范围来查找元素)
zrangebyscore sort1 18 23 withscores limit 0 2(limit 限定查找起始 类似分页)
zincrby sort1 5 h(zincrby 给指定元素加分)
zcount sort1 20 23(zcount 查找指定评分范围的元素个数)
sorted-score 使用场景:大型游戏积分排行榜,构建索引数据。
和List类型不同的是,Set集合中不允许出现重复的元素
Set可包含的最大元素数量是4294967295。
sadd set1 a b c:添加set元素
smembers set1:查看指定key集合元素
重复的元素不会进行添加。
srem set1 a d:删除元素
sismember set1 a:判断元素是否存在,如果存在的话,返回1,否则返回0.
sdiff set2 set3:计算差集,集合的顺序不同,结果不同( sadd set2 a b c,sadd set3 b c d e,sdiff set2 set3的结果是“a”,而sdiff set3 set2的结果是“d”,“e”)
sunion set2 set3:计算并集
scard set1:计算元素总数
srandmember set1:随机去一个元素
sinterstore r2 set2 set3:把交集结果存储到新集合中
sunionstore r3 set2 set3:把并集结果存储到新集合中
存储set使用场景,跟踪一些唯一性数据,用于维护数据之间的关联关系
在java中list有两大类,数组ArrayList和LinkList
lpush l1 a b c d:左边开始添加
lrange l1 0 -1:从第1个开始 到倒数第一个 也就是最后一个 也就是 所有数据
lrange l1 0 6:获取从第1个到第6个集合元素
rpush l2 a b c d:rpush 从右端开始添加(一般人比较习惯这种方式)
lpop 左侧弹出集合元素,rpop 右侧弹出集合元素
llen查看元素个数
lpushx 集合头部插入元素,lpush集合头部插入多个元素
rpushx 集合尾部插入元素,rpush集合头部插入多个元素
lrem 从指定方向删除指定个数的指定元素:lrem l2 2 1(从左边开始删除2个1) ,lrem l3 -2 3 (从右边开始删除2个3),lrem l3 0 2 (删除所有2),
String key 和String valuede Map容器
Hash可以设置单个字段,也可以多个字段一起进行设置。hset h1 username hss.hmset h2 username hss password 533533.
hget h1 username;hmget h2 username password,hgetall h2.获取Hash
hdel 删除属性,可以一次删除一个或者多个
hincrby h3 age 20:增加数字
hexists判断字段是否存在 1表示存在 0表示不存在
hlen获取hash属性个数
hkeys获取所有属性名称
hvals获取所有属性值