一、String数据类型
1.1 APPEND & STRLEN
【STRLEN】
[ root@localhost ~ ] # redis- cli - h 192.168 .131 .10 - p 6379 【登录数据库】
192.168 .131 .10 : 6379 > keys * 【查询所有key】
( empty list or set)
192.168 .131 .10 : 6379 > exists q 【判断该键是否存在】
( integer) 0 【存在返回1 ,不存在返回0 】
【APPEND】
192.168 .131 .10 : 6379 > append q 10 【因为q键不存在,所以append命令返回当前值的长度】
( integer) 2
192.168 .131 .10 : 6379 > append q 100 【因为q键已经存在,所以返回追加完“100 ”后的总长度】
( integer) 5
192.168 .131 .10 : 6379 > get q 【通过get命令获取q键,用来判断appedn的结果】
"10100"
192.168 .131 .10 : 6379 > set q 20 【通过set命令为q键设置新值,并覆盖原有值】
OK
192.168 .131 .10 : 6379 > get q 【获取q键的值】
"20"
192.168 .131 .10 : 6379 > STRLEN q 【获取指定键的字符长度】
( integer) 2
1.2 INCR & DECR & INCRBY & DECRBY
【INCR】
192.168 .131 .10 : 6379 > set q1 100 【设置q1键的值为100 】
OK
192.168 .131 .10 : 6379 > incr q1 【q1键的值递增1 】
( integer) 101
【DECR】
192.168 .131 .10 : 6379 > decr q1 【q1键的值递减1 】
( integer) 100
192.168 .131 .10 : 6379 > del q1 【删除已经的q键】
( integer) 1 【返回1 说明删除成功】
192.168 .131 .10 : 6379 > decr q1 【对空值的键进行递减操作,因为其原值被设定为0 ,所以递减后的值为- 1 】
( integer) - 1
192.168 .131 .10 : 6379 > get q2 【获取q2的值】
( nil)
192.168 .131 .10 : 6379 > incr q2 【对空值的键进行递增操作,因为其原值被设定为0 ,所以递减后的值为1 】
( integer) 1
192.168 .131 .10 : 6379 > set q1 hello 【将q1键的值设为普通字符串】
OK
192.168 .131 .10 : 6379 > incr q1 【因为q1键的值为不能转换为整形的字符串】
( error) ERR value is not an integer or out of range
192.168 .131 .10 : 6379 > set q1 100 【将q1键的值设定为100 】
OK
【DECRBY】
192.168 .131 .10 : 6379 > decrby q1 50 【减少指定的整数】
( integer) 50
【INCRBY】
192.168 .131 .10 : 6379 > incrby q1 30 【增加指定的指数】
( integer) 80
1.3 GETSET & SETEX & SETNX
【Getset】
192.168 .131 .10 : 6379 > set qz 30 【设置qz键的值为30 】
OK
192.168 .131 .10 : 6379 > get qz 【获取qz键的值】
"30"
192.168 .131 .10 : 6379 > INCR qz 【将qz键的值递增1 】
( integer) 31
192.168 .131 .10 : 6379 > GETSET qz 300 【获取qz键的值的同时并将其设置为新值,这两个操作同时完成】
"31"
192.168 .131 .10 : 6379 > get qz 【查看qz键的新值】
"300"
【Setex】
192.168 .131 .10 : 6379 > setex qz1 15 take- easy 【设置qz1键的过期时间为15 秒,值为take- easy】
OK
192.168 .131 .10 : 6379 > ttl qz1 【查看qz1键的剩余存活时间(秒数)】
( integer) 13
192.168 .131 .10 : 6379 > ttl qz 【返回值- 1 表示永不过期】
( integer) - 1
192.168 .131 .10 : 6379 > get qz1 【在qz1键的存活期内我们依旧可以获取到值】
"take-easy"
192.168 .131 .10 : 6379 > ttl qz1 【返回值- 2 表示已经过期】
( integer) - 2
192.168 .131 .10 : 6379 > get qz1 【获取过期的qz1键的值则返回nil】
( nil)
【Setnx】
192.168 .131 .10 : 6379 [ 1 ] > SELECT 1 【切换到1 号库】
OK
192.168 .131 .10 : 6379 [ 1 ] > keys * 【该库无键】
( empty list or set)
192.168 .131 .10 : 6379 [ 1 ] > SETNX qz take- easy 【因为qz键不存在,所以setnx命令执行成功】
( integer) 1
192.168 .131 .10 : 6379 [ 1 ] > SETNX qz take 【因为qz键已经存在,所以本次设置不会产生或者替换旧值,即没有任何效果】
( integer) 0
192.168 .131 .10 : 6379 [ 1 ] > get qz 【核实返回的值仍为第一次设置的值】
"take-easy"
1.4 MSET & MGET & MSETNX
【MSET& MGET】
192.168 .131 .10 : 6379 [ 1 ] > mset qz1 take qz2 easy 【批量设置qz1和qz2两个键的值】
OK
192.168 .131 .10 : 6379 [ 1 ] > mget qz1 qz2 【批量获取qz1和qz2两个键的值】
1 ) "take"
2 ) "easy"
【MSETNX】
192.168 .131 .10 : 6379 [ 1 ] > msetnx qz3 good qz4 luck 【批量设置2 个键的值,但是因为之前并无这2 个键,所以命令执行成功】
( integer) 1
192.168 .131 .10 : 6379 [ 1 ] > mget qz3 qz4 【批量获取qz3和qz4键的值】
1 ) "good"
2 ) "luck"
192.168 .131 .10 : 6379 [ 1 ] > msetnx qz3 good qz5 luck 【批量设置2 个键的值,但是qz3键已经存在,所以命令执行失败】
( integer) 0
192.168 .131 .10 : 6379 [ 1 ] > mget qz3 qz5 【获取刚才批量设置的qz3和qz5两个键的值,由于qz5键没有设置成功,所以返回nil】
1 ) "good"
2 ) ( nil)
二、List数据类型
2.1 LPUSH &L PUSHX & LRANGE
【LPUSH】
192.168 .131 .10 : 6379 [ 1 ] > SELECT 2 【切换到2 号库】
OK
192.168 .131 .10 : 6379 [ 2 ] > keys * 【查询该库无键】
( empty list or set)
【因为qz键不存在,所以lpush会创建qz键及其关联的列表,之后将参数中的值从左到右依次插入】
【因为此处的“l”代表左,所以列表显示的将会是e w q r】
192.168 .131 .10 : 6379 [ 2 ] > lpush qz q w e r
( integer) 4
192.168 .131 .10 : 6379 [ 2 ] > lrange qz 1 3 【取从位置1 到位置3 结束的3 个元素】
1 ) "e"
2 ) "w"
3 ) "q"
192.168 .131 .10 : 6379 [ 2 ] > LRANGE qz 0 - 1 【取列表中全部元素。0 :第一个元素,- 1 :最后一个元素】
1 ) "r"
2 ) "e"
3 ) "w"
4 ) "q"
【LPUSHX】
192.168 .131 .10 : 6379 [ 2 ] > lpushx qz2 e 【因为该键不存在,所以lpushx命令不会进行任何操作,并返回值0 】
( integer) 0
192.168 .131 .10 : 6379 [ 2 ] > lpushx qz t 【因为该键存在,所以lpush命令插入成功,并返回列表中当前元素的数量】
( integer) 5
【LRANGE】
192.168 .131 .10 : 6379 [ 2 ] > lrange qz 0 0 【读取该键的列表中所有值的头部元素】
1 ) "t"
192.168 .131 .10 : 6379 [ 2 ] > lrange qz 0 - 1
1 ) "t"
2 ) "r"
3 ) "e"
4 ) "w"
5 ) "q"
2.2 LPOP & LLEN
【LPOP】
192.168 .131 .10 : 6379 [ 2 ] > keys *
( empty list or set)
192.168 .131 .10 : 6379 [ 2 ] > lpush qz q w e 【创建qz键及其关联的表】
( integer) 3
192.168 .131 .10 : 6379 [ 2 ] > lrange qz 0 - 1 【获取qz列表中全部数据】
1 ) "e"
2 ) "w"
3 ) "q"
192.168 .131 .10 : 6379 [ 2 ] > lpop qz 【移除qz键关联列表的第一个元素并返回,即从右往左第一个】
"e"
192.168 .131 .10 : 6379 [ 2 ] > lpop qz
"w"
【LLEN】
【获取qz键的表中元素数量。因为执行了两次lpop,所以列表头部的两个元素均已被弹出,因此现在列表中元素的数量为1 】
192.168 .131 .10 : 6379 [ 2 ] > llen qz
( integer) 1
192.168 .131 .10 : 6379 [ 2 ] > lrange qz 0 - 1
1 ) "q"
2.3 LREM & LSET & LINDEX & LTRIM
【LREM】
192.168 .131 .10 : 6379 > SELECT 5 【切换到5 号库】
OK
192.168 .131 .10 : 6379 [ 5 ] > keys * 【查看当前库所有键】
( empty list or set)
192.168 .131 .10 : 6379 [ 5 ] > LPUSH qz q w e r q e 【创建qz键以及与其关联的列表,并将参数插入】
( integer) 6
192.168 .131 .10 : 6379 [ 5 ] > lrem qz 2 q 【从头部(left)向尾部(right)变量列表中删除2 个值为q的元素】
( integer) 2 【返回的值为实际删除的数量】
192.168 .131 .10 : 6379 [ 5 ] > LRANGE qz 0 - 1 【查看删除后列表中的全部元素】
1 ) "e"
2 ) "r"
3 ) "e"
4 ) "w"
【LSET& LINDEX】
192.168 .131 .10 : 6379 [ 5 ] > LINDEX qz 3 【获取索引值为3 (头部的第二个元素)的元素值】
"w"
192.168 .131 .10 : 6379 [ 5 ] > LSET qz 3 www 【将索引值为3 (头部的第二个元素)的元素值设为新值www】
OK
192.168 .131 .10 : 6379 [ 5 ] > LINDEX qz 3 【查看设置后的索引3 的值】
"www"
【LTRIM】
192.168 .131 .10 : 6379 [ 5 ] > LINDEX qz 6 【索引值6 超过了列表中元素的数量,所以返回nil】
( nil)
192.168 .131 .10 : 6379 [ 5 ] > lset qz 6 wwwwww 【设置的索引值6 超过了列表中元素的数量,索引设置失败并返回错误信息】
( error) ERR index out of range
192.168 .131 .10 : 6379 [ 5 ] > ltrim qz 0 2 【仅保留索引值0 - 2 之间的3 个元素(第0 和第2 个元素均被保留)】
OK
192.168 .131 .10 : 6379 [ 5 ] > LRANGE qz 0 - 1 【查看保留后的结果】
1 ) "e"
2 ) "r"
3 ) "e"
2.4 LINSERT
192.168 .131 .10 : 6379 [ 5 ] > SELECT 6 【切换到6 号库】
OK
192.168 .131 .10 : 6379 [ 6 ] > keys * 【查看该库所有键】
( empty list or set)
192.168 .131 .10 : 6379 [ 6 ] > lpush qz q w e r t 【创建qz键以及与其关联的列表,并将参数插入】
( integer) 5
192.168 .131 .10 : 6379 [ 6 ] > linsert qz before q q10 【在元素q前面插入新元素q10】
( integer) 6
192.168 .131 .10 : 6379 [ 6 ] > lrange qz 0 - 1 【查看结果】
1 ) "t"
2 ) "r"
3 ) "e"
4 ) "w"
5 ) "q10"
6 ) "q"
192.168 .131 .10 : 6379 [ 6 ] > linsert qz after r r20 【在元素r后面插入新元素r20】
( integer) 7
192.168 .131 .10 : 6379 [ 6 ] > lrange qz 0 - 1 【查看结果】
1 ) "t"
2 ) "r"
3 ) "r20"
4 ) "e"
5 ) "w"
6 ) "q10"
7 ) "q"
192.168 .131 .10 : 6379 [ 6 ] > linsert qz after rr r20 【如果被插入的元素不存在,则操作失败,并返回值为- 1 】
( integer) - 1
192.168 .131 .10 : 6379 [ 6 ] > keys *
1 ) "qz"
192.168 .131 .10 : 6379 [ 6 ] > linsert qz1 after rr r20 【为不存在的键插入新元素,命令操作失败,返回值为0 】
( integer) 0
2.5 RPUSH & RPUSHX & RPOPLPUSH
【RPUSH】
192.168 .131 .10 : 6379 [ 6 ] > keys *
1 ) "qz"
192.168 .131 .10 : 6379 [ 6 ] > rpush qz1 q w e r 【在qz1关联的列表中插入数据,顺序是从右往左】
( integer) 4
192.168 .131 .10 : 6379 [ 6 ] > lrange qz1 0 - 1 【查看qz1关联的列表以及插入顺序】
1 ) "q"
2 ) "w"
3 ) "e"
4 ) "r"
【RPUSHX】
192.168 .131 .10 : 6379 [ 6 ] > rpushx qz1 u 【将元素u插入到qz1关联的列表尾部】
( integer) 5 【因为之前有4 个元素,索引插入u后返回值为5 】
192.168 .131 .10 : 6379 [ 6 ] > lrange qz1 0 - 1 【查看,核对】
1 ) "q"
2 ) "w"
3 ) "e"
4 ) "r"
5 ) "u"
192.168 .131 .10 : 6379 [ 6 ] > keys *
1 ) "qz2"
2 ) "qz1"
3 ) "qz"
192.168 .131 .10 : 6379 [ 6 ] > rpushx qz3 u 【因为qz3键不存在,所以不会插入数,并且返回值为0 】
( integer) 0
192.168 .131 .10 : 6379 [ 6 ] > lrange qz1 0 - 1 【查看qz1键的列表】
1 ) "q"
2 ) "w"
3 ) "e"
4 ) "r"
5 ) "u"
192.168 .131 .10 : 6379 [ 6 ] > rpop qz1 【移除并返回qz键关联的列表中从右往左的第一个元素】
"u"
192.168 .131 .10 : 6379 [ 6 ] > lrange qz1 0 - 1 【查看,核对】
1 ) "q"
2 ) "w"
3 ) "e"
4 ) "r"
【RPOPLPUSH】
192.168 .131 .10 : 6379 [ 6 ] > lrange qz1 0 - 1 【查看qz1键关联的列表值】
1 ) "q"
2 ) "w"
3 ) "e"
4 ) "r"
192.168 .131 .10 : 6379 [ 6 ] > RPOPLPUSH qz1 qz3 【将qz1键关联列表尾部的元素r插入到qz3键关联列表的头部(原子性的完成这两步操作)】
"r"
192.168 .131 .10 : 6379 [ 6 ] > lrange qz1 0 - 1 【查看,核对】
1 ) "q"
2 ) "w"
3 ) "e"
192.168 .131 .10 : 6379 [ 6 ] > lrange qz3 0 - 1 【查看,核对】
1 ) "r"
192.168 .131 .10 : 6379 [ 6 ] > lrange qz1 0 - 1
1 ) "q"
2 ) "w"
3 ) "e"
192.168 .131 .10 : 6379 [ 6 ] > RPOPLPUSH qz1 qz1 【将列表中的尾部元素移到头部,并返回移动的元素】
"e"
192.168 .131 .10 : 6379 [ 6 ] > lrange qz1 0 - 1 【查看,核对】
1 ) "e"
2 ) "q"
3 ) "w"
三、Hash数据类型(散列类型)
3.1 HSET & HGET & HEXISTS & HLEN & HDEL & HSETNX
【HSET& HGET】
192.168 .131 .10 : 6379 [ 7 ] > keys * 【查询该库所有键】
( empty list or set)
192.168 .131 .10 : 6379 [ 7 ] > hset qz name zhao 【给qz键关联的表设置字段name,赋值zhao】
( integer) 1
192.168 .131 .10 : 6379 [ 7 ] > hget qz name 【获取qz键关联表中name字段的值】
"zhao"
192.168 .131 .10 : 6379 [ 7 ] > hget qz name2 【获取qz键关联表中name2字段的值】
( nil) 【因为name2字段不存在,所有返回nil】
【HLEN& HEXISTS】
192.168 .131 .10 : 6379 [ 7 ] > hset qz name2 li 【给qz键关联的表设置字段name2,赋值li】
( integer) 1
192.168 .131 .10 : 6379 [ 7 ] > hlen qz 【获取qz键关联表中字段数量(name和name2两个字段)】
( integer) 2
192.168 .131 .10 : 6379 [ 7 ] > hexists qz name2 【判断qz键关联表中是否存在name2字段】
( integer) 1 【因为存在,所以返回值1 】
192.168 .131 .10 : 6379 [ 7 ] > hdel qz name2 【删除qz键关联表中名为name2的字段】
192.168 .131 .10 : 6379 [ 7 ] > hexists qz name2
( integer) 0 【不存在,返回值0 】
【HDEL& HSETNX】
( integer) 1 【删除成功返回值1 】
192.168 .131 .10 : 6379 [ 7 ] > hdel qz name2 【再次删除qz键关联表中名为name2的字段】
( integer) 0 【因为上条命令已经将name2字段的值删除,所以这次没有值被删除,返回值0 】
192.168 .131 .10 : 6379 [ 7 ] > hsetnx qz name2 zhao 【给qz键关联表添加字段name2并赋值zhao】
( integer) 1 【因为该字段之前已被删除,所以添加成功后返回值1 】
192.168 .131 .10 : 6379 [ 7 ] > hsetnx qz name2 zhao
( integer) 0 【因为上条命令已添加成功,所以该字段有值,因此本次命令不做任何操作且返回值0 】
3.2 HINCRBY
192.168 .131 .10 : 6379 [ 7 ] > keys *
( empty list or set)
192.168 .131 .10 : 6379 [ 7 ] > hset qz score 7 【给qz键关联的表设置字段score,赋值7 】
( integer) 1
192.168 .131 .10 : 6379 [ 7 ] > hincrby qz score 3 【给qz键关联表score字段的值+ 3 】
( integer) 10 【返回追加后的结果】
192.168 .131 .10 : 6379 [ 7 ] > hincrby qz score - 6 【给qz键关联表score字段的值- 6 】
( integer) 4
192.168 .131 .10 : 6379 [ 7 ] > hincrby qz score - 10 【给qz键关联表score字段的值- 10 】
( integer) - 6
3.3 HGETALL & HKEYS & HVALS & HMGET & HMSET
【HMGET& HMSET】
192.168 .131 .10 : 6379 [ 7 ] > del qz
( integer) 1
192.168 .131 .10 : 6379 [ 7 ] > keys *
( empty list or set)
192.168 .131 .10 : 6379 [ 7 ] > hmset qz name zhao name2 li name3 chen 【批量设置qz键关联表中多个字段的值】
OK
192.168 .131 .10 : 6379 [ 7 ] > hmget qz name name2 name3 name4 【批量获取qz键关联表中多个字段的值】
1 ) "zhao"
2 ) "li"
3 ) "chen"
4 ) ( nil) 【因为name4字段不存在,所以返回结果nil】
【HGETALL】
192.168 .131 .10 : 6379 [ 7 ] > hgetall qz 【返回qz键中所有字段和值(从结果中可以看出,返回时是逐队列出的)】
1 ) "name"
2 ) "zhao"
3 ) "name2"
4 ) "li"
5 ) "name3"
6 ) "chen"
【HKEYS & HVALS】
192.168 .131 .10 : 6379 [ 7 ] > hkeys qz 【获取qz键中所有字段的名称】
1 ) "name"
2 ) "name2"
3 ) "name3"
192.168 .131 .10 : 6379 [ 7 ] > hvals qz 【获取qz键中所有字段的值】
1 ) "zhao"
2 ) "li"
3 ) "chen"
四、SET数据类型(无序集合)
4.1 概述与应用范围
4.2 SADD & SMEMBERS & SCARD & SISMEMBER
【SADD】
192.168 .131 .10 : 6379 [ 7 ] > select 8
OK
192.168 .131 .10 : 6379 [ 8 ] > keys *
( empty list or set)
192.168 .131 .10 : 6379 [ 8 ] > sadd qz q w e r 【因为qz集合不存在,所以参数中的元素值都被正常插入】
( integer) 4
192.168 .131 .10 : 6379 [ 8 ] > sadd qz q t y 【因q元素已经存在于qz集合,所以本次操作仅插入了t和y两个新元素】
( integer) 2
【SISMEMBER】
192.168 .131 .10 : 6379 [ 8 ] > sismember qz q 【查看q元素是否存在】
( integer) 1 【存在返回1 】
192.168 .131 .10 : 6379 [ 8 ] > sismember qz u
( integer) 0 【不存在返回0 】
【SMEMBERS】
192.168 .131 .10 : 6379 [ 8 ] > smembers qz 【查看插入的结果(输出的结果顺序与插入顺序无关)】
1 ) "y"
2 ) "r"
3 ) "e"
4 ) "t"
5 ) "w"
6 ) "q"
【SCARD】
192.168 .131 .10 : 6379 [ 8 ] > scard qz 【获取qz集合中元素数量】
( integer) 6
4.3 SPOP & SREM & SRANDMEMBER & SMOVE
【SRANDMEMBER& SPOP】
192.168 .131 .10 : 6379 [ 8 ] > keys *
( empty list or set)
192.168 .131 .10 : 6379 [ 8 ] >
192.168 .131 .10 : 6379 [ 8 ] > keys *
( empty list or set)
192.168 .131 .10 : 6379 [ 8 ] > sadd qz q w e r 【将参数插入到qz集合中】
( integer) 4
192.168 .131 .10 : 6379 [ 8 ] > smembers qz 【查看集合中所有成员】
1 ) "r"
2 ) "e"
3 ) "w"
4 ) "q"
192.168 .131 .10 : 6379 [ 8 ] > SRANDMEMBER qz 【随机返回qz集合中一个元素】
"r"
192.168 .131 .10 : 6379 [ 8 ] > SRANDMEMBER qz
"w"
192.168 .131 .10 : 6379 [ 8 ] > spop qz 【随机移除并返回集合中的一个元素】
"e"
192.168 .131 .10 : 6379 [ 8 ] > SMEMBERS qz 【查看移除后集合的元素信息】
1 ) "r"
2 ) "w"
3 ) "q"
【SREM】
192.168 .131 .10 : 6379 [ 8 ] > SREM qz a q w 【从集合中移除a、w、q三个元素,因为a不存在,所以只有q和w备移除,返回值2 】
( integer) 2
192.168 .131 .10 : 6379 [ 8 ] > SMEMBERS qz 【查看移除后的查询结果】
1 ) "r"
【SMOVE】
192.168 .131 .10 : 6379 [ 8 ] > sadd qz q w 【在qz集合中插入q、w元素】
( integer) 2
192.168 .131 .10 : 6379 [ 8 ] > sadd qz2 t y 【在qz2集合中插入t、y元素】
( integer) 2
192.168 .131 .10 : 6379 [ 8 ] > SMOVE qz qz2 r 【将r从qz集合移动到qz2集合】
( integer) 1
192.168 .131 .10 : 6379 [ 8 ] > SMEMBERS qz
1 ) "w"
2 ) "q"
192.168 .131 .10 : 6379 [ 8 ] > SMEMBERS qz2 【移动后查询qz2集合】
1 ) "r"
2 ) "y"
3 ) "t"
192.168 .131 .10 : 6379 [ 8 ] > SMOVE qz qz2 r 【因为qz集合中没有r元素,所以移动失败,返回值0 】
( integer) 0
五、Sorted Sed数据类型(zset有序集合)
5.1 概述与应用范围
5.2 ZADD & ZCARD & ZCOUNT & ZREM & ZINCRBY & ZSCORE & ZRANGE & ZRANK
【ZADD& ZRANGE】
192.168 .131 .10 : 6379 [ 8 ] > keys *
( empty list or set)
192.168 .131 .10 : 6379 [ 8 ] > zadd qz 1 chen 【添加一个分数为1 的成员】
( integer) 1
192.168 .131 .10 : 6379 [ 8 ] > zadd qz 2 li 3 wang 【添加两个分数分别为2 和3 的成员】
( integer) 2
192.168 .131 .10 : 6379 [ 8 ] > ZRANGE qz 0 - 1 【返回0 (第一个成员),- 1 (最后一个成员)】
1 ) "chen"
2 ) "li"
3 ) "wang"
192.168 .131 .10 : 6379 [ 8 ] > ZRANGE qz 0 - 1 withscores 【withscores:返回结果中包含每个成员及其分数】
1 ) "chen"
2 ) "1"
3 ) "li"
4 ) "2"
5 ) "wang"
6 ) "3"
【ZRANK& ZCARD& ZCOUNT& ZREM& ZSCORE】
192.168 .131 .10 : 6379 [ 8 ] > ZRANK qz chen 【获取成员chen在集合中的位置索引值】
( integer) 0 【0 代表第一个位置】
192.168 .131 .10 : 6379 [ 8 ] > ZRANK qz cheng 【因为此成员不存在,所以返回nil】
( nil)
192.168 .131 .10 : 6379 [ 8 ] > ZCARD qz 【获取集合中成员的数量】
( integer) 3
192.168 .131 .10 : 6379 [ 8 ] > ZCOUNT qz 1 2 【满足表达式1 <= score <= 2 的成员数量】
( integer) 2
192.168 .131 .10 : 6379 [ 8 ] > ZREM qz chen wang 【删除成员chen和wang】
( integer) 2 【返回实际删除成员的数量】
192.168 .131 .10 : 6379 [ 8 ] > ZCARD qz 【查看删除结果】
( integer) 1
192.168 .131 .10 : 6379 [ 8 ] > ZSCORE qz li 【获取成员li的分数】
"2"
192.168 .131 .10 : 6379 [ 8 ] > ZSCORE qz wang 【因为成员wang已被删除,所以返回nil】
( nil)
【ZINCRBY】
192.168 .131 .10 : 6379 [ 8 ] > ZINCRBY qz 5 wang 【成员wang不存在,该命令将添加成员并将其分数增加相应值】
"5" 【返回值为该成员更新后的分数】
192.168 .131 .10 : 6379 [ 8 ] > ZINCRBY qz - 15 wang
"-10"
192.168 .131 .10 : 6379 [ 8 ] > ZRANGE qz 0 - 1 WITHSCORES
1 ) "wang"
2 ) "-10"
3 ) "li"
4 ) "2"
5.3 ZRANGEBYSCORE & ZREMRANGEBYRANK & ZREMRANGEBYSCORE
【ZRANGEBYSCORE】
192.168 .131 .10 : 6379 [ 8 ] > keys *
( empty list or set)
192.168 .131 .10 : 6379 [ 8 ] > zadd qz 10 chen 20 li 30 zhao 40 wang 【添加4 个分数分别为10 、20 、30 和40 的成员】
( integer) 4
192.168 .131 .10 : 6379 [ 8 ] > ZRANGEBYSCORE qz 9 31 【获取分数满足9 <= score<= 31 表达式的成员】
1 ) "chen"
2 ) "li"
3 ) "zhao"
192.168 .131 .10 : 6379 [ 8 ] > zrange qz 0 - 1 withscores 【查看qz集合里成员与分数】
1 ) "chen"
2 ) "10"
3 ) "li"
4 ) "20"
5 ) "zhao"
6 ) "30"
7 ) "wang"
8 ) "40"
【ZREMRANGEBYRANK & ZREMRANGEBYSCORE】
【- int (表示第一个成员,也就是位置索引最低的,即0 ),+ inf表示最后一个成员(位置索引最高的)】
【limit后面的参数用于限制返回成员的值,2 表示从位置索引等于2 的成员开始取后面3 个成员】
192.168 .131 .10 : 6379 [ 8 ] > zrangebyscore qz - inf + inf limit 2 3
1 ) "zhao"
2 ) "wang"
【在位置索引1 开始到后面2 个成员中,取满足10 <= score<= 40 表达式的成员】
192.168 .131 .10 : 6379 [ 8 ] > ZRANGEBYSCORE qz 10 40 limit 1 2
1 ) "li"
2 ) "zhao"
192.168 .131 .10 : 6379 [ 8 ] > ZREMRANGEBYSCORE qz 10 20 【删除分数满足10 <= socre<= 20 表达式的成员】
( integer) 2 【返回实际删除的数量】
192.168 .131 .10 : 6379 [ 8 ] > zrange qz 0 - 1 withscores 【查看qz集合里成员与分数来验证】
1 ) "zhao"
2 ) "30"
3 ) "wang"
4 ) "40"
192.168 .131 .10 : 6379 [ 8 ] > ZREMRANGEBYRANK qz 0 1 【删除位置索引满足0 <= rank<= 1 表达式的成员】
( integer) 2
192.168 .131 .10 : 6379 [ 8 ] > zrange qz 0 - 1 withscores 【查看qz集合里成员与分数来验证】
( empty list or set)
192.168 .131 .10 : 6379 [ 8 ] > zcard qz 【获取集合中成员的数量来验证】
( integer) 0
5.4 ZREVRANGE & ZREVRANGEBYSCORE & ZREVRANK
【ZREVRANGE】
192.168 .131 .10 : 6379 [ 8 ] > keys *
( empty list or set)
192.168 .131 .10 : 6379 [ 8 ] > zadd qz 10 one 20 two 30 three 40 four 【添加4 个分数分别为10 、20 、30 和40 的成员】
( integer) 4
192.168 .131 .10 : 6379 [ 8 ] > ZREVRANGE qz 0 - 1 withscores 【按位置索引从高到低的方式获取并返回此区间内的成员】
1 ) "four"
2 ) "40"
3 ) "three"
4 ) "30"
5 ) "two"
6 ) "20"
7 ) "one"
8 ) "10"
192.168 .131 .10 : 6379 [ 8 ] > ZREVRANGE qz 1 3 【因为是从高到低的排序,所以位置索引为0 的是four,因此位置索引1 为three,并以此类推】
1 ) "three"
2 ) "two"
3 ) "one"
【ZREVRANK】
192.168 .131 .10 : 6379 [ 8 ] > ZREVRANK qz two 【获取qz集合中two的位置】
( integer) 2 【因为是从高到低的排序,所以two的位置索引为2 】
192.168 .131 .10 : 6379 [ 8 ] > ZREVRANK qz four
( integer) 0 【因为是从高到低的排序,所以two的位置索引为0 】
【ZREVRANGEBYSCORE】
192.168 .131 .10 : 6379 [ 8 ] > ZREVRANGEBYSCORE qz 30 10 【获取分数满足30 >= score>= 10 表达式的成员,并以从高到低的顺序输出】
1 ) "three"
2 ) "two"
3 ) "one"
【ZREVRANGEBYSCORE命令支持limit选项,等同于zrangebyscore中的该选项含义,只不过在计算位置时是按照相反的顺序计算和获取】
192.168 .131 .10 : 6379 [ 8 ] > ZREVRANGEBYSCORE qz 40 20 limit 1 2
1 ) "three"
2 ) "two"