2.1 字符串
Redis处理自增自减的命令
命令 | 用例和描述 |
---|---|
incr | incr keyname 值+1 |
decr | decr keyname 值-1 |
incrby | incrby keyname amount 值+amount |
decrby | decrby keyname amount 值-amount |
incrbyfloat | incrbyfloat keyname amount 值+float类型的amount(after redis 2.6) |
|
|
Redis处理子串和二进制位的命令
命令 | 用例和描述 |
---|---|
append | append keyname value 将值value追加到keyname当前值的末尾 |
getrange | getrange keyname start end 截取字符串[start,end] |
setrange | setrange keyname offset value 将从start开始的子串设置为给定值 |
getbit | getbit keyname offset 将字节串看做是二进制位串,并返回位串中偏移量为offset的二进制位的值 |
setbit | setbit keyname offset value 将二进制位串offset位置的值设置为value |
bitcount | bitcount keyname [stard end] 统计二进制位串里面value=1的数量,如果给定了start和end,则统计该范围内的 |
bitop | bitop operation destkey keyname [keyname…] 对一个或多个二进制位串执行包括 and、or、xor、not在内的人呢以一种按位运算操作(operation),并将计算得到的记过保存在destkey中 |
|
|
2.2 列表
rpush、lpush、rpop、lpop、lindex、lrange在第一篇文章介绍过,不多bb了。
| 命令 | 用例和描述 |
| — | — |
| ltrim | ltrim keyname start end 对列表进行修剪,只保留[start,end]范围内的元素 |
|
|
阻塞式列表弹出命令以及在列表之间移动元素命令
命令 | 用例和描述 |
---|---|
blpop | blpop keyname [keyname…] timeout 从第一个非空列表中弹出位于最左端的元素,或者在timeout秒之内阻塞并等待可弹出元素的出现 |
brpop | … |
rpoplpush | rpoplpush sourcekey destkey 从source列表中弹出位于最右端的元素,然后将这个而元素推入到dest |
brpoplpush | brpoplpush sourcekey destkey timeout ….在timeout秒之内阻塞并等待可弹出的元素出现 |
|
|
测试多个keyname的blocking弹出,从结果可以看出 blpop多个keyname不是分别将两个list的内容弹出,而是优先弹出第一个key,如果弹出成功则完成,如果第一个key没有内容,弹出操作不会被block,而是到下一个key中尝试弹出,如果弹出成功则结束,如果弹出失败则block timeout秒的时间。说明我们可以使用Redis完成消息的队列的功能。
|
|
2.3 集合
命令 | 用例和描述 |
---|---|
sadd | sadd keyname item [item…] 将元素添加到集合里面,并返回被添加元素当中原本不存在于集合中的元素数量 |
srem | srem keyname item [item…] 从集合里面移除一个或多个元素,并返回被移除元素的个数 |
sismember | sismember keyname 检查item是否存在于集合 |
scard | scard keyname 返回集合包含元素的数量 |
smembers | smsmbers keyname 返回集合包含的所有元素 |
spop | spop keyname 随机的移除一个元素,并返回被移除的元素 |
smove | smove sourcekey destkey item 如果source中包含item,则将item从source移除并添加到dest中;如果item被成功移除则返回1,否则返回0 |
srandmember | srandmember keyname [count] 从集合里面随机返回count个元素。当count为正数时,返回的随机元素不会重复;当count为负数时,返回的元素可能出现重复。 |
|
|
多个集合的操作
命令 | 用例和描述 |
---|---|
sdiff | sdiff keyname [keyname…] 返回那些存在于第一个结合但不存在于其他集合中的元素(差集) |
sdiffstore | sdiff destkey keyname [keyname…] 将集合的差集存储在destkey中 |
sinter | sinter keyname [keyname…] 返回存在于所有集合中的元素(交集) |
sinterstore | sinterstore destkey keyname [keyname…] 将交集存储于destkey中 |
sunion | sunion keyname [keyname…] 返回至少存在于一个集合中的元素(并集) |
sunionscore | sunitonscore destkey keyname [keyname…] 将并集结果存储在destkey中 |
|
|
2.4 散列
散列基本操作
命令 | 用例和描述 |
---|---|
hmget | hmget keyname key [key…] 从散列里面获取一个或多个键的值 |
hmset | hmset keyname key value [key value…] 为散列里面的键设置值 |
hdel | hdel keyname key [key…] 删除散列里面的一个或多个键对,并返回成功找到并删除的键值对数量 |
hlen | hlen keyname 返回散列包含的键值对数量 |
散列高级操作
命令 | 用例和描述 |
---|---|
hexists | hexists keyname key 检查给定的键是否存在于散列中 |
hkeys | hkeys keyname 获取散列包含的所有键 |
kvals | hvals keyname 获取散列包含的所有值 |
hgetall | hgetall keyname 获取散列包含的所有键值对 |
hincrby | hincrby keyname key increment 将键key存储的值加上整数increment |
hincrbyfloat | hincrbyfloat keyname key increment 将键key存储的值加上浮点数increment |
|
|
2.4 有序集合
命令 | 用例和描述 |
---|---|
zadd | zadd keyname score member [score member] 将带有给定分支的成员添加到集合里面 |
zrem | zrem keyname member [member…] 从有序集合里面移除给定的成员,并返回被移除成员的数据 |
zcard | zcard keyname 返回有序集合包含的成员数量 |
zincrby | zincrby keyname increment member 将member的分值加上increment |
zcount | zcount keyname min max 返回分值介于min和max之间的成员数量 |
zrank | zrank keyname member 返回成员member在有序集合中的排名 |
zscore | zscore keyname member 返回member的分值 |
zrange | zrange keyname start stop [withscores] 返回有序集合中排名介于start和stop之间的members,如果给定了withscores,那么成员的分值也一并返回 |
|
|
有序集合的范围性命令
命令 | 用例和描述 | ||
---|---|---|---|
zrevrank | zrevrank keyname member 降序排列,获取member的排名 | ||
zrevrange | zrevrange keyname start stop [withscores] 降序排列,返回集合中给定范围的元素 | ||
zrangebyscore | zrangebyscore keyname min max [withscores][limit offset count] 返回分值位于min~max之间的所有成员 | ||
zrevrangebyscore | zrevrangebyscore keyname max min [withscores][limit offset count] 降序排列,返回分支位于max~min之间的所有成员 | ||
zremrangebyrank | zremrangebyrank keyname start stop 移除集合中排名位于start~stop之间的元素 | ||
zremrangebyscore | zremrangebyscore keyname min max 移除集合中分值位于min~max之间的元素 | ||
zinterstore | zinterstore destkey keycount key [key…] [weights weight [weight…]] [aggregate sum | min | max] 对给定的有序集合执行交集运算,keycount为显式指定的集合个数 |
zunionstore | zunionstore destkey keycount key [key…] [weights weight [weight…]] [aggregate sum | min | max] 对给定的有序集合执行并集运算 |
|
|
2.6 发布与订阅
略
2,7 其他命令
排序
sort可以根据字符串、列表、集合、有序集合、散列这5种键里面存储着的数据对其排序。类似于关系数据库中的order by语句。
| 命令 | 用例和描述 |
| — | — |
| sort | sort sourcekey [by pattern] [limit offset count] [get pattern [get pattern…]] [asc|desc] [alpha] [store dest-key] 根据给定的选项,对输入列表、集合或者有序集合进行排序,然后返回或者存储排序的结果 |
|
|
2.8 键的过期时间
命令 | 示例和描述 |
---|---|
persist | persist keyname 移除键的过期时间 |
ttl | ttl keyname 查看给定键距离过期还有多少秒 |
expire | expire keyname seconds 让给定键在指定的秒数之后过期 |
expireat | expireat keyname timestamp 将给定键的过期时间设置为给定的Unix时间戳 |
pttl | pttl keyname 查看给定键距离过期时间还有多少毫秒,Redis2.6+ |
pexpire | pexpire keyname milliseconds,让给定键在指定的毫秒数之后过期。Redis2.6+ |
pexpireat | pexpireat keyname timestamp-milliseconds 将一个毫秒级精度的Unix时间戳设置为给定键的的过期时间,Redis2.6+ |
下一章:编写Java版的Redis操作工具类。