Redis数据结构与基本命令

Redis数据结构与基本命令

Redis提供的5种数据结构

数据类型存储的值读写能力
STRING字符串、整数、浮点数对整个字符串或者字符串的其中一部分执行操作;
对整数和浮点数执行自增(increment)或者自减(decrement)操作
LIST链表,链表上的每个节点都包含了一个字符串从链表的两端推入或者弹出元素;
根据偏移量对链表进行修建(teim);
读取单个或者多个元素;
根据值查找或者移除元素
SET包含字符串的无序集合,并且被包含的每个字符串都是独一无二、各不相同的添加、获取、移除单个元素;
检查一个元素是否存在于集合中;
集合运算(交、并、差);
从集合里面获取元素
HASH包含键值对的无序散列表添加、获取、移除单个键值对;
获取所有键值对
ZSET有序集合,字符串成员(member)与浮点数分值(score)之间的有序映射,元素的排列顺序由分值的大小决定添加、获取、移除单个元素;
根据分值范围(range)或者成员来获取元素

字符串命令

命令用例描述
GETGET keyName value获取存储在键中的值
SETSET keyName value设置存储在键中的值
DELDEL keyName删除存储在键中的值
INCRINCR keyName将键当前存储的值加1
DECRDECR keyName将键当前存储的值减1
INCRBYINCRBY keyName amount将键当前存储的值加上给定的整数值
DECRBYDECRBY keyName amount将键当前存储的值加上给定的整数值
INCRBYFLOATINCRBYFLOAT keyName amount将键当前存储的值加上给定的浮点数
APPENDAPPEND keyName value将值追加到键当前存储值的末尾
GETRANGEGETRANGE keyName start end获取一个由偏移量start至end范围内所有字符组成的子串,包括start和end
SETRANGESETRANGE keyName offset value将从start偏移量开始的子串为给定值
GETBITGEIBIT keyName offset将字节串看做是二进制位串(bit string),并返回位串中偏移量为offset的二进制位的值
SETBITSETBIT keyName offset value将字节串看做是二进制串,并将位串中偏移量为offset的二进制位的值设置位value
BITOPBIPOP operationg destKey keyName [keyName…]对一个或多个二进制位串执行位运算(并、或、异或、非),并将结果保存在destKey中

列表命令

命令用例描述
RPUSHRPUSH listName value [value…]将一个或多个值推入列表左端
LPUSHLPUSH listName value [value…]将一个或多个值推入列表右端
RPOPRPOP listName移除并返回列表最左端元素
LPOPLPOP listName移除并返回列表最右端元素
LINDEXLINDEX listName offset返回列表中偏移量为offset的元素
LRANGELRANGE listName start end返回列表中偏移量从start至end范围内的所有元素,包括start和end
LTRIMLTRIM listName start end队列表进行切片,只保留偏移量从start至end范围内的所有元素,包括start和end
BLPOPBLPOP listName [listName…] timeout从第一个非空列表中弹出位于最左端的元素,或者在timeout秒之内阻塞并等待可弹出的元素出现
BRPOPBRPOP listName [listName…] timeout从第一个非空列表中弹出位于最右端的元素,或者在timeout秒之内阻塞并等待可弹出的元素出现
RPOPLPUSHRPOPLPUSH sourceList destList从sourceList中弹出位于最右端的元素,然后将这个元素推入destList的最左端,并返回这个这个元素
BRPOPLPUSHBRPOPLPUSH sourceList destList timeout从sourceList中弹出位于最右端的元素,然后将这个元素推入destList的最左端,并返回这个元素;如果sourceList为空,那么在timeout秒之内阻塞并等待可弹出的元素出现

集合命令

命令用例描述
SADDSADD setName item [item…]将一个或多个元素添加到集合中,并返回被添加的元素中原本不存在于集合里面的元素数量
SREMSREM setName item [item…]从集合里面移除一个或多个元素,并返回被移除元素的数量
SISMEMBERSISMEMBER setName item检查元素是否存在于集合里
SCARDSCARD setName返回集合包含的元素数量
SMEMBERSSMEMBERS setName返回集合中包含的所有元素
SRANDMEMBERSRANDMEMBER setName [count]从集合里面随机返回一个或多个元素;当count为正数时,命令返回的随机元素不会重复;当count为负数时,命令返回的随机元素可能会出现重复
SPOPSPOP setName随机移除集合中的一个元素,返回被移除的元素
SMOVESMOVE sourceSet destSet item如果sourceSet包含元素item,那么从sourceSet里面移除元素item,将元素item添加到destSet中;如果item被移除成功,那么命令返回1,否则返回0
SDIFFSDIFF setName [setName…]计算差集运算,返回计算结果
SDIFFSTORESDIFFSTORE destSet setName [setName…]计算差集运算,将结果存储在destSet里面
SINTERSINTER setName [setName…]计算交集运算,返回计算结果
SINTERSTORESINTERSTORE destSet setName [setName…]计算交集运算,将结果存储在destSet里面
SUNIONSUNION setName [setName…]计算并集运算,返回计算结果
SUNIONSORESUNIONSORE destSet setName [setName…]计算并集运算,将结果存储在destSet里面

散列表命令

命令用例描述
HMGETHMGET hashName key [key…]从散列里面获取一个或多个键的值
HMSETHMSET hashName key value [key value…]为散列里面一个或多个键设置值
HDELHDEL hashName key [key…]删除散列里面的一个或多个键值对,返回成功找到并删除的键值对数量
HLENHLEN hashName返回散列包含的键值对数量
HEXISTSHEXISTS hashName key检查键是否存在于散列里面
HKEYSHKEYS hashName获取散列包含的所有键
HVALSHVALS hashName获取散列包含的所有值
HGETALLHGETALL hashName获取散列包含的所有键值对
HINCRBYHINCRBY hashName key increment将键存储的值加上整数increment
HINCRBYFLOATHINCRBYFLOAT hashName key increment将键存储的值加上浮点数increment

有序集命令

命令用例描述
ZADDZADD zsetName score member [score member…]将带有给定分值的成员添加到有序集里面
ZREMZREM zsetName member [member…]从有序集里面移除一个或多个成员,并返回被移除成员的数量
ZCARDZCARD zsetName返回有序集包含的成员数量
ZINCRBYZINCRBY zsetName increment member将给定成员的分值加上increment
ZCOUNTZCOUNT zsetName min max返回分值介于min和max之间的成员数量
ZRANKZRANK zsetName member返回成员在有序集中的排名
ZSCOREZSCORE zsetName member返回成员在有序集中的分值
ZRANGEZRANGE zsetName start stop [WITHSCORES]返回有序集中排名介于start和stop之间的成员,如果给定了可选的WITHSCORES选项,那么命令将成员的分值也一并返回
ZREVRANKZREVRANK zsetName member返回有序集里成员的排名,成员按照分值由大到小排列
ZREVRANGEZREVRANGE zsetName start stop [WITHSCORES]返回有序集里给定排名范围的成员,成员按照分值由大到小排列
ZRANGEBYSCOREZRANGEBYSCORE zsetName min max [WITHSCORES] [LIMIT offset count]返回有序集中,分值介于min和max之间的所有成员
ZREMRANGEBYRANKZREMRANGEBYRANK zsetName start stop移除有序集中排名介于start和stop之间的所有成员
ZREMRANGEBYSCOREZREMRANGEBYSCORE zsetName min max移除有序集中分值介于min和max之间的所有成员
ZINTERSTOREZINTERSTORE destZset zsetCount zset [zset…] [WEIGHTS weight [weight…]] [AGGREGATE SUM:MIN:MAX]计算交集运算,将结果存储在destSet里面
ZUNIONSTOREZUNIONSTORE destZset zsetCount zset [zset…] [WEIGHTS weight [weight…]] [AGGREGATE SUM:MIN:MAX]计算并集运算,将结果存储在destSet里面

其他命令

发布与订阅

命令用例描述
SUBSCRIBESUBSCRIBE channel [channel…]订阅一个或多个频道
UNSUBSCRIBEUNSUBSCRIBE channel [channel…]退订一个或多个频道,如果执行时没有指定任何频道,那么退订所有频道
PUBLISHPUBLISH channel message给频道发送消息
PSUBSCRIBEPSUBSCRIBE pattern [pattern…]订阅模式相匹配的所有频道
PUNSUBSCRIBEPUNSUBSCRIBE pattern [pattern…]退订模式,如果执行时没有指定任何模式,那么退订所有模式

排序

命令用例描述
SORTSORT sourceKey [BY pattern] [LIMIT offset count] [GET pattern [GET pattern…]] [ASC:DESC] [ALPHA] [STORE destKey]根据给定的选项,对输入的列表、集合、或者有序集进行排序,然后返回或者存储排序的结果

过期时间

命令用例描述
PERSISTPERSIST keyName移除键的过期时间
TTLTTL ketName查看键距离过期还剩多少秒
EXPIREEXPIRE keyName seconds给键设置过期时间, 单位为秒
EXPIREATEXPIREAT keyName timestamp给键设置过期时间戳
PTTLPTTL keyName查看键距离过期还剩多少毫秒
PEXPIREPEXPIRE keyName milliseconds给键设置过期时间,单位为毫秒
PEXPIREATPEXPIREAT keyName timestampMilliseconds给键设置过期毫秒精度的时间戳

事务

命令描述
MULTI开始事务
EXEC结束事务
WATCH
UNWATCH

未完待续

    原文作者:Samuel_墨水
    原文地址: https://segmentfault.com/a/1190000015831533
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞