redis指令
String
基础知识
存储以下三种值: 字符串、整数、浮点数
有需要的情况下,redis将整数转化为浮点数
明确区分三种值
自增/自减指令
INCR KEY-NAME
将键存储的值+1DECR KEY-NAME
将键存储的值-1INCR KEY-NAME AMOUNT
将键存储的值+AMOUNTDECR KEY-NAME AMOUNT
将键存储的值-AMOUNTINCRBYFLOAT KEY-NAME AMOUNT
将键存储的值+浮点数AMOUNT
redis处理二进制位和字串
APPEND KEYNAME VALUE
将value值追加到键KEYNAME当前存储的值末尾GETRANGE KEYNAME START END
获取start到end范围内所有字符构成的子串,包含start和endSETRANGE KEYNAME OFFSET VALUE
将从start偏移量开始的子串设置为给定值GETBIT KEYNAME OFFSET
将字节串视为二进制位串,并返回串中偏移量为OFFSET值的二进制位的值SETBIT KEYNAME OFFSET VALUE
将字节串视为二进制位串,并将串中偏移量为OFFSET值的二进制位的值设为VALUEBITCOUNT KEYNAME START END
统计给定范围内二进制位串值为1的二进制位的个数BITOP OPERATION DESTKEY KEYNAME [KEYNAME ...]
对一个或多个二进制位串进行AND、OR、XOR、NOT等操作,并将计算出来的结果保存到DESTKEY键里面
使用null字节自动拓展至长度
超出部分视为空串
List
常用操作指令:
RPUSH KEYNAME VALUE [VALUE...]
将一个或多个值推入列表右侧LPUSH KEYNAME VALUE [VALUE...]
将一个或多个值推入列表左侧RPOP KEYNAME
弹出并返回列表最右端的值LPOP KEYNAME
弹出并返回列表最左端的值LINDEX KEYNAME OFFSET
返回列表中偏移量为OFFSET的值LRANGE KEYNAME START END
返回start到end范围内所有元素,包含start和endLTRIM KEYNAME START END
只保留start到end范围内所有元素,包含start和end
阻塞式列表弹出与列表间移动指令
BLPOP KEYNAME [KEYNAME...] TIMEOUT
从第一个非空列表中弹出最左端元素,或在TIMEOUT秒之内阻塞并等待可弹出的元素出现BRPOP KEYNAME [KEYNAME...] TIMEOUT
从第一个非空列表中弹出最右端元素,或在TIMEOUT秒之内阻塞并等待可弹出的元素出现BPOPLPUSH SOURCEKEY DESTKEY
将SOURCEKEY中最右端元素弹出,然后压入DESTKEY最左端,并向用户返回BRPOPLPUSH SOURCEKEY DESTKEY TIMEOUT
将SOURCEKEY中最右端元素弹出,然后压入DESTKEY最左端,并向用户返回这个元素;如果SOURCEKEY为空,则在TIMEOUT秒之内阻塞并等待可弹出的元素出现
Set
集合的基本指令:
SADD KEYNAME ITEM [ITEM...]
将一个或多个元素添加入集合,并返回被添加元素中原本并不存在于集合的元素的数量SREM KEYNAME ITEM [ITEM...]
从集合中移除一个或多个元素,并返回被移除元素的数量SISMEMBER KEYNAME ITEM
检查item是否位于集合中SCARD KEYNAME
返回集合包含元素的数量SMEMBERS KEYNAME
返回集合包含的所有元素SRANDMEMBER KEYNAME [COUNT]
从集合中随机返回一个或多个元素 ,count > 0 时, 返回的元素不会重复, count < 0 时返回的元素可以重复SPOP KEYNAME
随机移除集合中的一个元素,并返回被移除的元素SMOVE SOURCEKEY DESTKEY ITEM
如果SOURCEKEY包含item,将其从SOURCEKEY中移除并添加到DESTKEY中;如果item被成功移除,则命令返回1,否则返回0
组合和处理多个集合的redis操作
SDIFF KEYNAME [KEYNAME...]
返回差集SDIFFSTORE DESTKEY KEYNAME [KEYNAME...]
返回差集到DESTKEYSINTER KEYNAME [KEYNAME...]
返回交集SINTERSTORE DESTKEY KEYNAME [KEYNAME...]
返回交集到DESTKEYSUNION KEYNAME [KEYNAME...]
返回并集SUNION DESTKEY KEYNAME [KEYNAME...]
返回并集到DESTKEY
Hash
添加和删除键值对操作:
HMGET KEYNAME KEY [KEY...]
从散列里面获取一个或多个键的值HMSET KEYNAME KEY VALUE [KEY VALUE ...]
为散列中一个或多个键设置值HDEL KEYNAME KEY [KEY...]
删除散列里面一个或多个键值对,并返回成功找到并删除的个数HLEN KEYNAME
返回散列包含键值对的数量
redis散列高级特性
HEXISTS KEYNAME KEY
检查给定值是否在散列中HKEYS KEYNAME
获取散列中所有的键HVALS KEYNAME
获取散列中所有的值HGETALL KEYNAME
获取散列中所有的键值对HINCRBY KEYNAME KEY INCREMENT
将键key上存储的值加上incrementHINCRBYFLOAT KEYNAME KEY INCREMENT
将键key上存储的值加上浮点数increment
Zset
常用指令:
ZADD KEYNAME SCORE MEMBER [KEY MEMBER]
将给定分值的成员添加到集合中ZREM KEYNAME MEMBER [MEMBER]
将给定成员从有序集合中删除,并返回成功数量ZCARD KEYNAME
返回有序集合成员数量ZINCRBY KEYNAME INCREMENT MEMBER
将member成员的分值加上incrementZCOUNT KEYNAME MIN MAX
返回分值介于min和max指检的成员ZRANK KEYNAME MEMBER
返回member在有序集合中的排名ZSCORE KEYNAME MEMBER
返回成员member的分值ZRANGE KEYNAME START STOP
返回排名介于start到stop之间的成员,若添加WITHSCORES,则将分数一并返回
范围型数据操作指令
ZREVRANK KEYNAME MEMBER
返回有序集合menber的排名,成员按分值由大到小ZREVRANGE KEYNAME MEMBER [WITHSCORES]
返回有序集合给定范围的成员,按分值从大到小排序ZRANGEBYSCORE KEY MIN MAX [WITHSCORES] [LIMIT OFFSET COUNT]
获取有序结合中分值介于min和max之间的所有成员,并按分值由大到小返回ZREMRANGEBYRANK KEYNAME START STOP
移除排名介于start和stop之间所有的成员ZREMRANGEBYSCORE KEYNAEM MIN MAX
移除分值位于min和max之间的所有成员ZINTERSTORE DESTKEY KEYCOUNT KEY [KEY...] [WEIGHTS WEIGHT [WEIGHT...] [AGGREGATE SUM|MIN|MAX]]
对给定有序集合进行交集操作ZUNIONSTORE DESTKEY KEYCOUNT KEY [KEY...] [WEIGHTS WEIGHT [WEIGHT...] [AGGREGATE SUM|MIN|MAX]]
对给定有序结合进行并集操作
redis 发布与订阅
SUBSCRIBE CHANNEL [CHANNEL...]
订阅一个或多个频道UNSUBSCRIBE [CHANNEL [CHANNEL...]]
退订一个或多个频道,无参数全部退订PUBLISH CHANNEL MESSAGE
向给定频道发送信息PSUBSCRIBE PATTERN[PATTERN...]
订阅与给定模式向匹配的频道PUNSYBSCRIBE [PATTERN[PATTERN...]]
退订给定模式,若无参数全部退订影响的主要两个因素:
1.和redis系统稳定性有关
2.和数据传输的可靠性有关
其他常用指令
SORT SOURCE-KEY [BY PATTERN] [LIMIT OFFSET COUNT] [GET PATTERN [GET PATTERN...]] [ASC|DESC] [ALPHA] [STORE DEST_KEY]
根据给定的选项,对输入的列表,集合或者有序集合进行排序,然后返回或者存储排序的结果
对列表排序,对集合排序输出列表形式排序结果redis事务(
WATCH MULTI EXEC UNWATCH DISCARD
)
基本事务:让一个客户端在不被其他客户端打断的情况下执行多个指令
这种情况下,在Redis里面被MULTI和EXEC包含的所有命令会一个接一个执行,直到所有命令都执行完毕。(MULTI => redis内部队列 => EXEC)
注意:为了减少网络通信,事务一次性保存
流水线机制
键的过期时间
过期时间特性(expiration):
PERSIST KET-NAME
: 移除键的过期时间TTL KEY-NAME
:查看给定键TTL时间EXPIRE KEY-NAME SECONDS
: 让给定键在指定秒数后过期EXPIREAT KET-NAME TIMESTAMP
:将给定键过期时间设置为给定的UNIX时间戳PTTL KEY-NAME
:查看给定键毫秒TTLPEXPIRE KEY-NAME MILLISECONDS
: 让给定键在指定毫秒后过期PEXPIREAT KEY-NAME TIMESTAMP-MILLISECONDS
:给定键过期时间设置为毫秒级UNIX时间