08Redis哈希(Hash)和有序集合Zset(sorted set)

哈希(Hash)


KV模式不变,但V是一个键值对


!!! hset/hget/hmset/hmget/hgetall/hdel !!!

hset user id 11

hget user id :11 这样写才能得到11

hset user name z3

hget user name : z3 这样写才能得到z3


hmset customer id 11 name li4 age 26:一口气插入这样的键值对

hmget customer id name age:11 li4 26这样写才能得到结果

hgetall customer:id 11 name li4 age 26 得到所有的key value


hdel user name :把user 中的name字段删除


hlen获得对象value的字段长度

hlen user :1


hexists key key01:判断在key这个hash存不存在一个key叫做key01

hexists customer id :也就是判断customer中有没有id这个字段


!!! hkeys/hvals !!!

hkeys customer : id name age 得到所有的key

hvals customer:11 li4 26 得到所有的value


hincrby/hincrbyfloat

hincrby customer age 2 :将customer中age 字段的值增加2

hset customer score 91.5

hincrbyfloat customer score 0.5 :将customer中score字段的float值增加0.5


hsetnx:如果不存在,则插入进去,否则不会插入进去

hsetnx customer age 26 :0 因为已经有了age

hsetnx customer email [email protected]: 1因为没有email,所有成功插入


有序集Zset(sorted set)


在set基础上,加一个score值。之前set是k1 v1 v2 v3,现在zset是k1 score1 v1 score2 v2 (score v1是一个整体了)


zadd/zrange

zadd zset01 60 v1 70 v2 80 v3 90 v4 100 v5

zrange zset01 0 -1:v1 v2 v3 v4 v5

zrange zset01 0 -1 withscores:v1 60 v2 70 v3 80 v4 90 v5 100


zrangebyscore key 开始score 结束score

”(“ : 代表不包含

zrangebyscore zset01 60 90 :>=60并且<=90

zrangebyscore zset01 60 (90: >=60并且<90

zrangebyscore zset01 (60 (90:>60并且<90

zrangebyscore zset01 60 90 limit 2 2 从下标2开始截取两个


zrem key 某score下对应的value值,作用是删除元素

zrem zset01 v5

zrange zset01 0 -1 withscores:你会发现没有了100那个


zcard/zcount key score区间/zrank key values值,作用是获得下标值/zscore key 对应值,获得分数

zcard zset01 得到个数(注意score和value是一体的)

zcount zset01 60 80 得到60到80之间的个数

zrank zset01 v4 :获得v4的下标值

zscore zset01 v4 :得到v4的score值


zrevrank key values值,作用是逆序获得下标值

zrevrank zset01 v4:0


zrevrange:逆序获得值

zrange zset01 0 -1 :v4 v3 v2 v1

zrevrange zset01 0 -1:v1 v2 v3 v4


zrevrangebyscore key score结束分数 开始分数

zrevrangebyscore zset01 90 60

你可能感兴趣的:(Redis)