一、哈希散列
1.代码介绍:
hset key filed value 设置一个字段和对应的值
hmset key filed* value 设置多个字段和对应的值
hget key filed 获取一个字段的值
hmget key filed* 获取多个字段的值
hgetall key 获取所有字段和对应的值
hkeys key 只获取字段名
hvals key 只获取key中字段的值
hdel key filed* 删除key中一个或多个字段
hexists key filed 判断字段是否存在key中
hlen key 获取key的字段的个数
hsetnx key filed value 如果字段不存在,则给key赋值value,否则不执行任何操作
hincrby key filed increment 给字段增加increment大小,若key不存在则先创建再增加
2.实践代码:
hset student:1 name kie school JXAU age 20
hkeys student:1
hvals student:1
hmget name school age
hgetall student:1
hexists student:1 weight
hsetnx student:1 weight 50
hincrby student:1 wight 50
hgetall student:1
hlen studen:1
hdel student:1 weight
hgetall student:1
二、有序集合
1.代码介绍:
zadd key [NX|XX] [CH] [INCR] score* member* 往key中添加分数和元素
[NX|XX]表示不更新或更新存在的元素,NX表示不只添加新元素,XX表示不添加新元素;
[CH]表示返回发生变化的元素总数;[INCR]表示指定元素按照分值进行递增操作
zscore key member 获取key中元素member的分数
zrange key start end withscores 按名次从小到大的顺序获取key中的元素,withscores表示带上分数
同理zrevrange是按从大到小
zrangebyscore key min max withscores limit offset count
在min到max的分数范围内按从小到大的顺序获取key中的元素,withscores表示带上分数,limit offset count 表所从min开始得到的第一个元素偏移offset到第1+offset个元素,从这个元素开始在该范围内获取count个元素,zrevrangebysocre是按从大到小的顺序,其他一样。分数可以为整数和双精度浮点数,如+inf
使用 ( 表所不包含该端点。
zincrby key increment member 让key的member元素的分数增加increment(可正可负)
zcard key 获取key的键值对个数
zcount key min max 获取分数范围在min到max之间的元素
zrank key member 从小到大获取member的排名序数,zrevrank是从大到小获取
zrem key member* 删除一个或者多个key中的元素
zremrangebyrank key start end 按照star到end的元素从小到大的排名范围删除key中的元素
zremrangebyscore key min max 按照分数min到max的范围删除key中的元素
2.实践代码:
创建redis_score有序集合,添加5个键值对数据
zadd redis_score 100 kie 90 vice 80 oblivion 70 heart 60 care
获取redis_score有序集合中键值对个数
zcard redis_score
获取redis_score有序集合中元素kie的分数
zscore redis_score kie
按从小到大的排名顺序获取redis_score有序集合的元素和分数
zrange 0 -1 redis_score withscores
按从大到小的排名顺序获取redis_score有序集合的元素和分数
zrevrange 0 -1 reids_score withscores
获取redis_score有序集合中分数在80到100的元素和分数
zrangebyscore redis_score 80 100 withscores
获取redis_score有序集合中分数高于60分的第二个人开始的3个人
zrangebyscore redis_score 60 100 withscores limit 1 3
获取redis_score有序集合中分数低于或等于100分的前三个人
zrevrangebyscore redis_score 100 0 withscores limit 0 3
让redis_score有序集合中的care元素的分数增加10分
zincrby redis_score care 10
获取redis_score有序集合中分数在60到100之间的元素个数
zcount redis_score 60 100
按从小到大的排列顺序获取kie的排名
zrank redis_score kie
按从大到小的排列顺序获取care的排序
zrevrank redis_score care
在redis_score有序集合中删除care元素
zrem redis_score care
在redis_score有序集合中删除分数为70到80的元素
zremrangebyscore redis_score 70 80
在redis_score有序集合中删除所有元素
zremrangebyrank redis_score 0 -2