4

Redis数据结构与基本命令

--

Redis提供的5种数据结构

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

字符串命令

命令 用例 描述
GET GET keyName value 获取存储在键中的值
SET SET keyName value 设置存储在键中的值
DEL DEL keyName 删除存储在键中的值
INCR INCR keyName 将键当前存储的值加1
DECR DECR keyName 将键当前存储的值减1
INCRBY INCRBY keyName amount 将键当前存储的值加上给定的整数值
DECRBY DECRBY keyName amount 将键当前存储的值加上给定的整数值
INCRBYFLOAT INCRBYFLOAT keyName amount 将键当前存储的值加上给定的浮点数
APPEND APPEND keyName value 将值追加到键当前存储值的末尾
GETRANGE GETRANGE keyName start end 获取一个由偏移量start至end范围内所有字符组成的子串,包括start和end
SETRANGE SETRANGE keyName offset value 将从start偏移量开始的子串为给定值
GETBIT GEIBIT keyName offset 将字节串看做是二进制位串(bit string),并返回位串中偏移量为offset的二进制位的值
SETBIT SETBIT keyName offset value 将字节串看做是二进制串,并将位串中偏移量为offset的二进制位的值设置位value
BITOP BIPOP operationg destKey keyName [keyName...] 对一个或多个二进制位串执行位运算(并、或、异或、非),并将结果保存在destKey中

列表命令

命令 用例 描述
RPUSH RPUSH listName value [value...] 将一个或多个值推入列表左端
LPUSH LPUSH listName value [value...] 将一个或多个值推入列表右端
RPOP RPOP listName 移除并返回列表最左端元素
LPOP LPOP listName 移除并返回列表最右端元素
LINDEX LINDEX listName offset 返回列表中偏移量为offset的元素
LRANGE LRANGE listName start end 返回列表中偏移量从start至end范围内的所有元素,包括start和end
LTRIM LTRIM listName start end 队列表进行切片,只保留偏移量从start至end范围内的所有元素,包括start和end
BLPOP BLPOP listName [listName...] timeout 从第一个非空列表中弹出位于最左端的元素,或者在timeout秒之内阻塞并等待可弹出的元素出现
BRPOP BRPOP listName [listName...] timeout 从第一个非空列表中弹出位于最右端的元素,或者在timeout秒之内阻塞并等待可弹出的元素出现
RPOPLPUSH RPOPLPUSH sourceList destList 从sourceList中弹出位于最右端的元素,然后将这个元素推入destList的最左端,并返回这个这个元素
BRPOPLPUSH BRPOPLPUSH sourceList destList timeout 从sourceList中弹出位于最右端的元素,然后将这个元素推入destList的最左端,并返回这个元素;如果sourceList为空,那么在timeout秒之内阻塞并等待可弹出的元素出现

集合命令

命令 用例 描述
SADD SADD setName item [item...] 将一个或多个元素添加到集合中,并返回被添加的元素中原本不存在于集合里面的元素数量
SREM SREM setName item [item...] 从集合里面移除一个或多个元素,并返回被移除元素的数量
SISMEMBER SISMEMBER setName item 检查元素是否存在于集合里
SCARD SCARD setName 返回集合包含的元素数量
SMEMBERS SMEMBERS setName 返回集合中包含的所有元素
SRANDMEMBER SRANDMEMBER setName [count] 从集合里面随机返回一个或多个元素;当count为正数时,命令返回的随机元素不会重复;当count为负数时,命令返回的随机元素可能会出现重复
SPOP SPOP setName 随机移除集合中的一个元素,返回被移除的元素
SMOVE SMOVE sourceSet destSet item 如果sourceSet包含元素item,那么从sourceSet里面移除元素item,将元素item添加到destSet中;如果item被移除成功,那么命令返回1,否则返回0
SDIFF SDIFF setName [setName...] 计算差集运算,返回计算结果
SDIFFSTORE SDIFFSTORE destSet setName [setName...] 计算差集运算,将结果存储在destSet里面
SINTER SINTER setName [setName...] 计算交集运算,返回计算结果
SINTERSTORE SINTERSTORE destSet setName [setName...] 计算交集运算,将结果存储在destSet里面
SUNION SUNION setName [setName...] 计算并集运算,返回计算结果
SUNIONSORE SUNIONSORE destSet setName [setName...] 计算并集运算,将结果存储在destSet里面

散列表命令

命令 用例 描述
HMGET HMGET hashName key [key...] 从散列里面获取一个或多个键的值
HMSET HMSET hashName key value [key value...] 为散列里面一个或多个键设置值
HDEL HDEL hashName key [key...] 删除散列里面的一个或多个键值对,返回成功找到并删除的键值对数量
HLEN HLEN hashName 返回散列包含的键值对数量
HEXISTS HEXISTS hashName key 检查键是否存在于散列里面
HKEYS HKEYS hashName 获取散列包含的所有键
HVALS HVALS hashName 获取散列包含的所有值
HGETALL HGETALL hashName 获取散列包含的所有键值对
HINCRBY HINCRBY hashName key increment 将键存储的值加上整数increment
HINCRBYFLOAT HINCRBYFLOAT hashName key increment 将键存储的值加上浮点数increment

有序集命令

命令 用例 描述
ZADD ZADD zsetName score member [score member...] 将带有给定分值的成员添加到有序集里面
ZREM ZREM zsetName member [member...] 从有序集里面移除一个或多个成员,并返回被移除成员的数量
ZCARD ZCARD zsetName 返回有序集包含的成员数量
ZINCRBY ZINCRBY zsetName increment member 将给定成员的分值加上increment
ZCOUNT ZCOUNT zsetName min max 返回分值介于min和max之间的成员数量
ZRANK ZRANK zsetName member 返回成员在有序集中的排名
ZSCORE ZSCORE zsetName member 返回成员在有序集中的分值
ZRANGE ZRANGE zsetName start stop [WITHSCORES] 返回有序集中排名介于start和stop之间的成员,如果给定了可选的WITHSCORES选项,那么命令将成员的分值也一并返回
ZREVRANK ZREVRANK zsetName member 返回有序集里成员的排名,成员按照分值由大到小排列
ZREVRANGE ZREVRANGE zsetName start stop [WITHSCORES] 返回有序集里给定排名范围的成员,成员按照分值由大到小排列
ZRANGEBYSCORE ZRANGEBYSCORE zsetName min max [WITHSCORES] [LIMIT offset count] 返回有序集中,分值介于min和max之间的所有成员
ZREMRANGEBYRANK ZREMRANGEBYRANK zsetName start stop 移除有序集中排名介于start和stop之间的所有成员
ZREMRANGEBYSCORE ZREMRANGEBYSCORE zsetName min max 移除有序集中分值介于min和max之间的所有成员
ZINTERSTORE ZINTERSTORE destZset zsetCount zset [zset...] [WEIGHTS weight [weight...]] [AGGREGATE SUM:MIN:MAX] 计算交集运算,将结果存储在destSet里面
ZUNIONSTORE ZUNIONSTORE destZset zsetCount zset [zset...] [WEIGHTS weight [weight...]] [AGGREGATE SUM:MIN:MAX] 计算并集运算,将结果存储在destSet里面

其他命令

发布与订阅

命令 用例 描述
SUBSCRIBE SUBSCRIBE channel [channel...] 订阅一个或多个频道
UNSUBSCRIBE UNSUBSCRIBE channel [channel...] 退订一个或多个频道,如果执行时没有指定任何频道,那么退订所有频道
PUBLISH PUBLISH channel message 给频道发送消息
PSUBSCRIBE PSUBSCRIBE pattern [pattern...] 订阅模式相匹配的所有频道
PUNSUBSCRIBE PUNSUBSCRIBE pattern [pattern...] 退订模式,如果执行时没有指定任何模式,那么退订所有模式

排序

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

过期时间

命令 用例 描述
PERSIST PERSIST keyName 移除键的过期时间
TTL TTL ketName 查看键距离过期还剩多少秒
EXPIRE EXPIRE keyName seconds 给键设置过期时间, 单位为秒
EXPIREAT EXPIREAT keyName timestamp 给键设置过期时间戳
PTTL PTTL keyName 查看键距离过期还剩多少毫秒
PEXPIRE PEXPIRE keyName milliseconds 给键设置过期时间,单位为毫秒
PEXPIREAT PEXPIREAT keyName timestampMilliseconds 给键设置过期毫秒精度的时间戳

事务

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

未完待续


Samuel_帽衫
5 声望4 粉丝

要有趣,不无聊;