redis 学习笔记二

redis指令

String


基础知识

存储以下三种值: 字符串、整数、浮点数
有需要的情况下,redis将整数转化为浮点数
明确区分三种值


自增/自减指令

INCR KEY-NAME 将键存储的值+1
DECR KEY-NAME 将键存储的值-1
INCR KEY-NAME AMOUNT 将键存储的值+AMOUNT
DECR KEY-NAME AMOUNT 将键存储的值-AMOUNT
INCRBYFLOAT KEY-NAME AMOUNT 将键存储的值+浮点数AMOUNT


redis处理二进制位和字串

APPEND KEYNAME VALUE 将value值追加到键KEYNAME当前存储的值末尾
GETRANGE KEYNAME START END 获取start到end范围内所有字符构成的子串,包含start和end
SETRANGE KEYNAME OFFSET VALUE将从start偏移量开始的子串设置为给定值
GETBIT KEYNAME OFFSET 将字节串视为二进制位串,并返回串中偏移量为OFFSET值的二进制位的值
SETBIT KEYNAME OFFSET VALUE将字节串视为二进制位串,并将串中偏移量为OFFSET值的二进制位的值设为VALUE
BITCOUNT 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和end
LTRIM 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...] 返回差集到DESTKEY
SINTER KEYNAME [KEYNAME...] 返回交集
SINTERSTORE DESTKEY KEYNAME [KEYNAME...] 返回交集到DESTKEY
SUNION 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上存储的值加上increment
HINCRBYFLOAT KEYNAME KEY INCREMENT 将键key上存储的值加上浮点数increment


Zset


常用指令:

ZADD KEYNAME SCORE MEMBER [KEY MEMBER]将给定分值的成员添加到集合中
ZREM KEYNAME MEMBER [MEMBER] 将给定成员从有序集合中删除,并返回成功数量
ZCARD KEYNAME 返回有序集合成员数量
ZINCRBY KEYNAME INCREMENT MEMBER 将member成员的分值加上increment
ZCOUNT 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:查看给定键毫秒TTL
PEXPIRE KEY-NAME MILLISECONDS: 让给定键在指定毫秒后过期
PEXPIREAT KEY-NAME TIMESTAMP-MILLISECONDS:给定键过期时间设置为毫秒级UNIX时间

posted @ 2019-05-01 02:20  ganshuoos  阅读(123)  评论(0编辑  收藏  举报