Maxbad`Blog

Redis2

2020-09-22 · 10 min read

结构类型

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

STRING (字符串)

可存储: 字节串,整数,浮点数


命令 行为 其他
GET 获取存储在给定键中的值 不存在返回nil
SET 设置存储在给定键中的值 执行成功返回OK
DEL 删除存储在给定键中的值 这个命令可以用于所有类型,成功删除的值的数量
INCR 将键存储的值加上1
DECR 将键存储的值减去1
INCRBY 将键存储的值加上整数 amount
DECRBY 将键存储的值减去整数 amount
INCRBYFPOAT 将键存储的值加上浮点数 amount

LIST (列表)(有序)

列表结构可以有序地存储多个字符串,可重复

命令 行为 其他
RPUSH 将给定值推入列表的右端 返回列表当前的长度
LPUSH 将一个或多个值推入列表的左端
LRANGE 获取列表在给定范围上的所有值 从0到-1范围可以去除全部列表
LINDEX 获取列表在给定位置上的单个元素 取单个
LPOP 从列表的左端弹出一个值,并返回被弹出的值 被弹出的元素将不再存在于列表
RPOP 移除并返回列表最右端的元素
LTRIM 对列表进行修剪,只保留从start偏移量到end偏移量范围内的元素,其中偏移量为start和偏移量为end的元素也会被保留
BLPOP 从第一个非空列表中弹出位于最左端的元素,或者在timeout秒之内阻塞并等待可弹出的元素出现
BRPOP 从第一个非空列表中弹出位于最右端的元素,或者在timeout秒之内阻塞并等待可弹出的元素出现
RPOPLPUSH 从source-key列表中弹出位于最右端的元素,然后将这个元素推入dest-key列表的最左端,并向用户返回这个元素
BRPOPLPUSH 从source-key列表中弹出位于最右端的元素,然后将这个元素推入dest-key列表的最左端,并向用户返回这个元素;如果source-key为空,那么在timeout秒之内阻塞并等待可弹出的元素出现

SET (集合)(无序)

通过散列表来保证自己存储的每个字符串都是各不相同的(这些散列表只有键,但没有与键相关联的值),无序方式存储元素

命令 行为 其他
SADD 将给定元素添加到集合 返回1表示成功,返回0表示已存在
SMEMBERS 返回集合包含的所有元素
SISMEMBER 检查给定元素是否存在于集合中 返回1表示存在,返回0表示不存在
SREM 如果给定的元素存在于集合中,那么移除这个元素 返回被移除元素的数量
SINTER 交集 返回那些同事存在于所有集合中的元素
SUNION 并集 返回那些至少存在于一个集合中的元素
SDIFF 差集 返回那些存在于第一个集合,但不存在与其他集合中的元素
SCARD 返回集合包含的元素的数量
SRANDMEMBER 从集合里面随机返回一个或多个元素,单count为正数时,命令返回的随机元素不会重复;当count为负数时.命令返回的随机数可能会出现重复
SPOP 随机移除集合中的一个元素,并返回被移除的元素
SMOVE 如果集合source-key包含元素item,那么从集合source-key里面移除元素item.,并将元素item添加到集合dest-key中;如果item被成功移除,那么返回1否则返回0
SDIFFSTORE 将那些存在于第一个集合但并不存在于其他集合中的元素(差集运算)存储到dest-key键里面
SINTERSTORE 将那些同时存在于所有集合的元素(交集运算)存储到dest-key键里面
SUNIONSTORE 将那些是少存在于一个集合中的元素(并集计算)存储到dest-key键里面

HASH (散列)

可以存储多个键值对之间的映射,值可以是字符串也可以是数值,并且数值可以自增或自减操作.

命令 行为 其他
HSET 在散列里面关联起给定的键值对 1表示成功,0表示已存在
HGET 获取指定散列键的值
HGETALL 获取散列包含的所有键值对
HDEL 如果给定的键存在于散列里面,那么移除这个键 1表示成功,0表示不存在
HMGET 从散列里面获取一个或多个键的值
HMSET 为散列里面的一个或多个键设置值
HDEL 删除散列里面的一个或多个键值对,返回成功找到并删除的键值对数量
HLEN 返回散列包含的键值对数量
HEXISTS 检查给定键是否存在于散列中
HKEYS 获取散列包含的所有键
HVALS 获取散列包含的所有值
HGETALL 获取散列包含的所有键值对
HINCRBY 将键key存储的值加上整数increment
HINCRBYFLOAT 将键key存储的值加上浮点数increment

ZSET (有序集合)

有序集合的键被称为成员(member),每个成员都是各不相同的,有序集合的值被称为分值(score),分值必须为浮点数,有序集合是Redis里面唯一一个既可以根据成员访问元素(散列一样),有可以根据分值以及分值的排序来访问元素的结构

命令 行为 其他
ZADD 将一个带有给定分值的成员添加到有序集合里面 返回添加元素的数量
ZRANGE 返回有序集合中排名介于start和stop之间的成员,如果给定了可选的withsocores选项,那么命令会将成员的分值也一并返回 从0开始-1结束可返回全部
ZRANGEBYSCORE 获取有序集合在给定分值范围内的所有元素
ZREM 如果给定成员存在于有序集合,那么移除这个成员 返回被移除元素的数量
ZCARD 返回有序集合包含的成员数量
ZINCRBY 返回分值介于min和max之间的成员数量
ZRANK 返回成员member在有序集合中的排名
ZSCORE 妇女和成员member的分值
ZREVRANK 返回有序集合里成员member的排名.成员按照分值从大到小排列
ZREVRANGE 返回有序集合给定排名范围内的成员,成员按照分值从大到小排序
ZRANGEBYSOCRE 返回有序集合中,分值介于min和max之间的所有成员
ZREVRANGEBYSOCRE 获取有序集合中分值介于min和max之间的所有成员,并按照分值从大到小的顺序来返回它们
ZREMRANGEBYRANK 移除有序集合中排名界面start和stop之间的所有成员
ZREMRANGEBYSCORE 移除有序集合中分值介于min和max之间的所有成员
ZINTERSTORE 对给定的有序集合执行类似于集合的交集运算
ZUNIONSTORE 对给定的有序集合执行类似于集合的并集运算

发布于订阅

命令 示例 行为
SUBSCRIBE SUBSCRIBE changel [changel ...] 订阅给定的一个或多个频道
UNSUBSCRIBE UNSUBSCRIBE [changel [changel ...]] 退订给定的一个或多个频道,如果执行时没有给定任何频道,那么推定所有频道
PUBLISH PUBLIST changel message 向给定频道发送消息
PSUBSCRIBE PSUBSCRIBE pattern [pattern ...] 订阅与给定模式相匹配的所有频道
PUNSUBSCRIBE PUNSUBSCRIBE [pattern [pattern ...]] 退订给定的模式,如果执行时没有给定任何模式,那么退订所有模式

其他命令

排序

SORT命令不仅可以对列表进行排序,还可以对集合进行排序,然后返回一个列表形式的排序结果,

命令 示例 行为
SORT SORT source-key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC or DESC] [ALPHA] [STORE dest-key] 根据给定的选项,对输入列表,集合或者有序集合进行排序,然后返回或者存储排序的结果

事务

用户在不被打断的情况下对多个键执行操作

命令 示例
WATCH
MULTI
EXEC
UNWATCH
DISCARD

键的过期时间

命令 示例 描述
PERSIST PERSIST key-name 移除键的国企时间
TTL TTL key-name 查看给定键距离过期还有多少秒
EXPIRE EXPIRE key-name seconds 让给定键在指定的秒数之后过期
EXPIREAT EXPIREAT key-name timestamp 将给定键的过期时间设置为给定的unix时间戳
PTTL PTTL key-name 查看给定键距离过期时间还有多少毫秒
PEXPIRE PEXPIRE key-name milliseconds 让给定键在指定的毫秒数之后过期
PEXPIREAT PEXPIREAT key-name timestamp-milliseconds 将一个毫秒级精度的unix时间戳设置为给定键的过期时间