美文网首页
2024-05-29 redis 命令

2024-05-29 redis 命令

作者: lookphp | 来源:发表于2024-05-28 15:36 被阅读0次

Redis 连接

命令 说明
echo message 用于打印输出给定的字符串
select index 用于切换到指定的数据库,数据库索引号 index 用数字值指定,以 0 作为起始索引值,index的值默认从0~15 ,切换数据库时,命令行前面会显示当前所在数据库索引号,索引号为0则不显示
ping 检测Redis服务是否启动,返回PONG时,表示已启动
quit 关闭当前客户端与redis服务的连接。服务仍在,仅关闭了客户端
auth password 用于检测给定的密码和配置文件中的密码是否相符。

Redis 键(key)

命令 说明
type key_name 返回key所存储的值的类型。
pexpireat key_name TIME_IN_MILLISECONDS_IN_UNIX_TIMESTAMP 设置key的过期时间,以毫秒计。key过期后将不再可用。
expire key_name TIME_IN_SECONDS 设置key的过期时间。可以过期后将不再可用。
expireat key_name TIME_IN_UNIX_TIMESTAMP 设置key的过期时间,接受的时间参数是Unix时间戳
rename key_name OLD_KEY_NAME NEW_KEY_NAME 修改key的名称,newkey已存在时,rename会覆盖旧newkey
renamenx OLD_KEY_NAME NEW_KEY_NAME 用于在新的key不存在时修改key的名称。
persist key_name 移除给定key的过期时间,使得key永不过期
ttl key_name 返回给定key的剩余生存时间,time to live,以秒为单位
pttl key_name 返回给定key的剩余过期时间。precise time to live , 以毫秒为单位
move key_name DESTINATION_DATABASE 将当前数据库的key移动到给定的数据库db当中
randomkey 从当前数据库中随机返回一个key
keys * 查看当前数据库中所有key
dump key_name 序列化给定key,并返回被序列化的值。使用 DUMP 命令时,需要谨慎操作,因为序列化的数据是二进制格式,直接查看或编辑可能会破坏数据。通常,序列化的数据会与 RESTORE 命令一起使用,以确保数据的正确恢复。
exists key_name 用于检查给定的key是否存在
keys pattern 用于查找所有符合给定模式pattern的key

1、Redis 字符串(String)

命令 说明
set key_name value 设置给定key的值,如果key值已经存储其他值,set就覆写旧值,且无视类型。
setnx key_name value 在指定的key不存在时,为key设置指定的值(SET if Not eXists)
setex key_name TIMEOUT value 设置给定key的值,并将key的过期时间设为seconds(以秒为单位)。
psetex key_name TIMEOUT value 设置给定key的值,以毫秒为单位设置 key 的生存时间。
setrange key_name offset value 从偏移量 offset 开始用 value 覆写给定 key 所储存的字符串值。
get key_name 用于获取指定 key 的值。如果 key 不存在,返回 nil 。

如果key 储存的值不是字符串类型,返回一个错误。
getrange key_name start end 用于获取存储在指定 key 中字符串的子字符串。

字符串的截取范围由 start 和 end 两个偏移量决定(包括 start 和 end 在内)。
getset key_name value 将给定 key 的值设为 value ,并返回 key 的旧值 ( old value )。
mset key1 value1 key2 value2 ... keyN valueN 同时设置一个或多个key-value对。
msetnx key1 value1 key2 value2 ... keyN valueN 当且仅当所有给定键都不存在时, 为所有给定键设置值。

MSETNX 是一个原子性(atomic)操作, 所有给定键要么就全部都被设置, 要么就全部都不设置。
setbit key_name offset 对key所储存的字符串值,设置或清除指定偏移量上的位(bit)。
getbit key_name offset 对 key 所储存的字符串值,获取指定偏移量上的位(bit)。

当偏移量 OFFSET 比字符串值的长度大,或者 key 不存在时,返回 0 。
incr key_name 将 key 中储存的数字值增一。
incrby key_name INCR_AMOUNT 将 key 所储存的值加上给定的增量值(increment) 。

如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCRBY 命令。
incrbyfloat key_name increment 将 key 所储存的值加上给定的浮点增量值 ( increment )。

此外, 无论加法计算所得的浮点数的实际精度有多长, INCRBYFLOAT 命令的计算结果最多只保留小数点的后十七位。
decr key_name value 将 key 中储存的数字值减一。需要value的值为int型整数
decrby key_name DECREMENT_AMOUNT 将key 所储存的值减去给定的减量值(decrement) 。

如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECRBY 操作。
strlen key_name 用于获取指定 key 所储存的字符串值的长度。当 key 储存的不是字符串值时,返回一个错误。
append key_name new_value 将 value 追加到 key 原来的值的末尾,模式:时间序列(Time series)

2、Redis 哈希(Hash)

命令 说明
hset key_name field value 用于设置存储在 key 中的哈希表的field字段赋值value。
如果字段(field)已经存在于哈希表中,旧值将被覆盖。
hget key_name field 用于返回哈希表中指定字段 field 的值。
hexists key_name field 用于查看哈希表的指定字段field 是否存在。
hdel key_name field 用于删除哈希表key中的一个或多个指定字段,不存在的字段将被忽略。
hgetall key_name 用于返回存储在 key 中的哈希表中所有的域和值。

在返回值里,紧跟每个域(field name)之后是域的值(value),所以返回值的长度是哈希表大小的两倍。
hkeys key_name 返回存储在 key 中哈希表的所有域。
hvals key_name 命令返回哈希表所有域(field)的值。
hincrby key_name field increment 为哈希表 key 中的域 field 的值加上增量 increment 。
增量也可以为负数,相当于对给定域进行减法操作。
hincrbyfloat key_name field increment 为哈希表 key 中的域 field 加上浮点数增量 increment
hmset key_name field value [field value...] 用于同时将多个field-value(字段-值)对 设置到哈希表中。此命令会覆盖哈希表中已存在的字段。
hmget key_name field [field...] 用于返回哈希表中,一个或多个给定字段(field)的值。
hscan key_name cursor [MATCH pattern] [COUNT count] 命令用于遍历哈希表中的键值对。
cursor 游标 。
pattern 匹配模式。
count 指定从数据集里返回多少元素,默认为10。
使用起来像MySQL里的like模糊查询
hsetnx key_name field value 用于为哈希表中不存在的字段赋值。如果字段已经存在于哈希表中,操作无效。
hlen key_name 用于获取哈希表中字段(fields)的数量。
hstrlen key_name field 返回存储在key中的哈希表里,与给定域field相关联值value的字符串长度。

3、Redis 列表(List)

命令 说明
lpush key_name element [element...] 用于将一个或多个值插入到列表key 的头部
可以使用一个命令把多个元素 push 进入列表,只需在命令末尾加上多个指定的参数。
元素按在参数中出现的顺序,从左到右依次插入到 list 的头部。
lpushx key_name element [element...] 在当 key 存在并且存储着一个 list 类型值的时候,向值 list 的头部插入 value。
与 LPUSH 相反,当 key 不存在的时候不会进行任何操作。
lrange key_name start end 用于返回列表中指定区间内的元素,区间以偏移量 START 和 END 指定。
lpop key_name 用于删除并返回存储在 key 中的列表的第一个元素。
llen key_name 用于返回存储在 key 中的列表长度。
lrem key_name 用于从列表 key 中删除前 count 个值等于 element 的元素。具体看手册。
lset key_name index element 用于设置列表 key 中 index 位置的元素值为 element。
ltrim key_name start stop 用于修剪(trim)一个已存在的 list,这样 list 就会只包含指定范围的指定元素。比如用reids来存储日志。
lindex key_name index 返回列表 key 里索引 index 位置存储的元素。
linsert key_name before|after pivot element 用于把 element 插入到列表 key 中参考值 pivot 的前面或后面。
rpush key_name 向存储在 key 中的列表的尾部插入所有指定的值。
rpushx key_name 将值 value 插入到列表 key 的表尾, 当且仅当 key 存在并且是一个列表。
rpop key_name 用于移除并返回列表 key 的最后一个元素。
rpoplpush sourece destination 用于原子地从列表 source 中移除并返回最后一个元素,然后把这个元素插入为列表destination 的第一个元素。
lmove key_name 可靠队列 、环境队列 。可用版本>= 6.2.0.
lpos key_name 可用版本>= 6.0.6.
blpop key_name timeout lpop的阻塞版本
brpop key_name BRPOPRPOP 的阻塞版本
blmove key_name BLMOVELMOVE 的阻塞版本。

4、Redis 集合(Set)

交集、并集

命令 说明
sadd key_name member [member ...] 将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略。
smembers key_name 返回存储在 key 中的集合的所有的成员。 不存在的集合被视为空集合。
sismember key_name element 用于判断元素 member 是否集合 key 的成员。
scard key_name 返回集合中元素的数量。
sdiff key [key ...] 返回第一个集合与其他集合之间的差异,也可以认为说第一个集合中独有的元素。
sdiffstore destination key [key ...] 作用和sdiff类似,不同的是它将结果保存到destination集合,而把结果集返回 给客户端。
sinter key [key ...] 返回所有给定集合的成员交集。
sinterstore destination key [key ...] SINTERSTORE 命令与 SINTER 命令类似,不同的是它并不是直接返回结果集,而是将结果保存在 destination 集合中。
smismember key member [member ...] SMISMEMBER 命令用来检查给定的 member 是不是特定集合的成员。 可用版本>= 6.2.0.
smove source destination member 命令用于从集合source 中移动成员member 到集合 destination。 这个操作是原子操作。 在任何时刻,member 只会存在于source 和destination 其中之一。
spop key_name [count] 命令用于从集合 key中删除并返回一个或多个随机元素。
srandmember key [count] SRANDMEMBER 命令仅使用key 参数,那么随机返回集合key 中的一个随机元素。
Redis 2.6开始,可以接受 count 参数,如果count是整数且小于元素的个数,返回含有 count 个不同的元素的数组,如果count是个整数且大于集合中元素的个数时,返回整个集合的所有元素,当count是负数,则会返回一个包含count的绝对值的个数元素的数组,如果count的绝对值大于元素的个数,则返回的结果集里会出现一个元素出现多次的情况.
仅提供key参数时,该命令作用类似于SPOP命令,不同的是SPOP命令会将被选择的随机元素从集合中移除,而SRANDMEMBER 仅仅是返回该随记元素,而不对原集合做任何操作。
srem key member [member ...] 用于在集合中删除指定的元素。如果指定的元素不是集合成员则被忽略。
sscan key cursor [match pattern] [count count] Redis SSCAN 命令用于遍历集合中键的元素,SSCAN 继承自 SCAN
sunion key [key ...] 用于返回所有给定集合的并集。对于不存在 key 被当做空集合处理。
sunionstore destination key [key ...] SUNIONSTORE 命令的功能类似于 SUNION,不同的是不反回结果集,而是存储在 destination 中。

5、Redis 有序集合(Zset)

命令 说明
zadd key [NX|XX] [CH] [INCR] score member [score member ...] 向有序集合添加一个或多个成员,或者更新已存在成员的分数
zcard 获取有序集合的成员数
zcount 计算在有序集合中指定区间分数的成员数
zincrby 有序集合中对指定成员的分数加上增量 increment
zinterstore 计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 key 中
zlexcount 在有序集合中计算指定字典区间内成员数量
zrange 通过索引区间返回有序集合成指定区间内的成员
zrangebylex 通过字典区间返回有序集合的成员
zrangebyscore 通过分数返回有序集合指定区间内的成员
zrank 返回有序集合中指定成员的索引
zrem 移除有序集合中的一个或多个成员
zremrangebylex 通过字典区间返回有序集合的成员
zremrangebyrank 移除有序集合中给定的排名区间的所有成员
zremrangebyscore 移除有序集合中给定的分数区间的所有成员
zrevrange 返回有序集中指定区间内的成员,通过索引,分数从高到底
zrevrangebyscore 返回有序集中指定分数区间内的成员,分数从高到低排序
zrevrank 返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序
zscore 返回有序集中,成员的分数值
zunionstore 计算给定的一个或多个有序集的并集,并存储在新的 key 中
zscan 迭代有序集合中的元素(包括元素成员和元素分值)

相关文章

网友评论

      本文标题:2024-05-29 redis 命令

      本文链接:https://www.haomeiwen.com/subject/vttkqjtx.html