首页 > 数据库 >Redis 常用命令

Redis 常用命令

时间:2024-09-17 15:05:36浏览次数:7  
标签:127.0 0.1 Redis value 6379 key 常用命令 集合

Redis 常用命令

转载:Redis 键(key) | 菜鸟教程 (runoob.com)

键操作

命令 描述
SET key value 将字符串值存储在指定的键中。如果键已经存在,则覆盖旧值。
GET key 获取指定键的值。
DEL key 删除指定的键。如果键不存在,忽略操作。
EXISTS key 检查指定的键是否存在,返回 1 表示存在,0 表示不存在。
EXPIRE key seconds 为键设置生存时间(TTL,单位为秒)。到期后,键将被自动删除。
EXPIREAT key timestamp 类似于 EXPIRE,但接受 UNIX 时间戳作为参数。键将在指定的时间戳时过期。
PEXPIRE key milliseconds 为指定的键设置过期时间(单位为毫秒)。在指定的时间后,键将被自动删除。
PEXPIREAT key milliseconds-timestamp 类似于 PEXPIRE,但接受 UNIX 时间戳(以毫秒为单位)作为参数。键将在指定的时间戳时过期。
TTL key 查看键的剩余生存时间(单位为秒)。如果没有设置过期时间,返回 -1;如果键不存在,返回 -2。
PTTL key 返回指定键的剩余过期时间(单位为毫秒)。如果键没有设置过期时间,返回 -1;如果键不存在,返回 -2。
KEYS pattern 查找匹配给定模式的所有键。pattern 可以包含通配符(例如 * 匹配任意多个字符,? 匹配单个字符)。
RENAME key newkey 重命名指定的键。如果 newkey 已经存在,将被覆盖。
RENAMENX key newkey 仅当 newkey 不存在时,将 key 重命名为 newkey。如果 newkey 已存在,操作不会进行。
TYPE key 返回键所存储的值的类型。可能的返回值有 string, list, set, zset, hash, none 等。
DUMP key 序列化指定的键,并返回序列化的值。可以用来持久化键的值。序列化后的数据是二进制安全的。
RANDOMKEY 随机返回当前数据库中的一个键。如果数据库为空,返回 nil
MOVE key db 将指定的键移动到另一个数据库中。
PERSIST key 移除键的过期时间,使其变为永久存储。
SCAN cursor [MATCH pattern] [COUNT count] 迭代数据库中的键。cursor 是游标,用于跟踪迭代的位置。MATCH pattern 可以用来匹配键名,COUNT count 可以用来控制每次迭代返回的键的数量。
--以`0`为初始游标查询通配`my开头`的所有key,最大返回10,`2`为下一次的有标位置
127.0.0.1:6379> scan 0 match my* count 10
1) "2"
2) 1) "mykey"
   2) "mykey3"
   3) "mykey7"
   4) "mykey2"
127.0.0.1:6379> scan 2 match my* count 10
1) "62"
2) 1) "mykey9"
   2) "mykey4"
   3) "mykey8"
   4) "mykey5"
127.0.0.1:6379> scan 62 match my* count 10
1) "43"
2) 1) "mykey10"
   2) "mykey6"
   3) "mykey1"
127.0.0.1:6379> scan 43 match my* count 10
1) "0"
2) (empty array)

String 类型数据

命令 描述
SET key value 设置指定 key 的值。如果 key 已经存在,它会覆盖原有的值。
SETNX key value 只有在 key 不存在时设置 key 的值。如果 key 已经存在,则不做任何操作。
SETEX key seconds value key 的值设置为 value,并在指定的 seconds 后过期。
PSETEX key milliseconds value 这个命令和 SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间,而不是像 SETEX 命令那样,以秒为单位。
MSET key1 value1 [key2 value2 ...] 同时设置多个键值对。如果任何 key 已经存在,则所有操作都不会执行。
MSETNX key1 value1 [key2 value2 ...] 同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。
SETRANGE key offset value value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始。
APPEND key value value 追加到 key 对应的值的末尾。如果 key 不存在,它会被初始化为一个空字符串,然后再进行追加操作。
GET key 获取指定 key 的值。如果 key 不存在,返回 nil
GETRANGE key start end 返回 key 中字符串值的子字符。
STRLEN key 返回 key 所储存的字符串值的长度。
GETSET key value key 的值设置为 value,并返回 key 的旧值。
MGET key1 [key2 ...] 获取所有(一个或多个)给定 key 的值。如果某个 key 不存在,则对应的返回值是 nil
DEL key 删除指定的 key。如果 key 存在,删除它并返回 1;如果 key 不存在,返回 0
EXISTS key 检查 key 是否存在。如果存在,返回 1;否则返回 0
SETBIT key offset value key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。
GETBIT key offset key 所储存的字符串值,获取指定偏移量上的位(bit)。
INCR key key 中储存的整数值加一。如果 key 不存在,它会被初始化为 0,然后加一。
DECR key key 中储存的整数值减一。如果 key 不存在,它会被初始化为 0,然后减一。
INCRBY key increment key 所储存的值加上给定的增量值(increment)。
DECRBY key decrement key 所储存的值减去给定的减量值(decrement)。
NCRBYFLOAT key increment key 所储存的值加上给定的浮点增量值(increment)。
--在增量时要注意有小数的要使用 `hincrbyfloat`命令(或者数字增量浮点型后再增量时)
127.0.0.1:6379> incr a
(integer) 1
127.0.0.1:6379> get a
"1"
127.0.0.1:6379> incr a 10
(error) ERR wrong number of arguments for 'incr' command
127.0.0.1:6379> incrby a 10
(integer) 11
127.0.0.1:6379> incrbyfloat a 0.5
"11.5"
127.0.0.1:6379> 
127.0.0.1:6379> incrby a 10
(error) ERR value is not an integer or out of range
127.0.0.1:6379> 

Hash 数据类型

命令 描述
HDEL key field1 [field2] 删除一个或多个哈希表字段
HEXISTS key field 查看哈希表 key 中,指定的字段是否存在
HGET key field 获取存储在哈希表中指定字段的值
HGETALL key 获取在哈希表中指定 key 的所有字段和值
HINCRBY key field increment 为哈希表 key 中的指定字段的整数值加上增量 increment
HINCRBYFLOAT key field increment 为哈希表 key 中的指定字段的浮点数值加上增量 increment
HKEYS key 获取哈希表中的所有字段
HLEN key 获取哈希表中字段的数量
HMGET key field1 [field2] 获取所有给定字段的值
HMSET key field1 value1 [field2 value2 ] 同时将多个 field-value (域-值)对设置到哈希表 key 中
HSET key field value 将哈希表 key 中的字段 field 的值设为 value
HSETNX key field value 只有在字段 field 不存在时,设置哈希表字段的值
HVALS key 获取哈希表中所有值
HSCAN key cursor [MATCH pattern] [COUNT count] 迭代哈希表中的键值对
127.0.0.1:6379> hscan student:1000 0 match * count 10
1) "0"
2) 1) "name"
   2) "lisi"
   3) "score"
   4) "90.5"

127.0.0.1:6379> hscan student:1000 0 
1) "0"
2) 1) "name"
   2) "lisi"
   3) "score"
   4) "90.5"

List 数据类型

命令 描述
LPUSH key value1 [value2 ...] 将一个或多个值插入到列表头部。
LPUSHX key value 将一个值插入到已存在的列表头部(如果列表不存在则不执行任何操作)。
RPUSH key value1 [value2 ...] 在列表中添加一个或多个值到列表尾部。
RPUSHX key value 为已存在的列表添加值(如果列表不存在则不执行任何操作)。
LSET key index value 通过索引设置列表中的元素值。
`LINSERT key BEFORE AFTER pivot value`
LLEN key 获取列表的长度(元素个数)。
LRANGE key start stop 获取列表中指定范围内的元素。
LINDEX key index 通过索引获取列表中的元素。
LREM key count value 根据参数 count 移除列表中与 value 相等的元素。
LTRIM key start stop 对列表进行修剪,只保留指定区间内的元素,其他元素将被删除。
LPOP key 移出并获取列表的第一个元素。
BLPOP key1 [key2 ...] timeout 移出并获取列表的第一个元素,阻塞等待直到超时或有元素可弹出。
RPOP key 移除并获取列表的最后一个元素。
BRPOP key1 [key2 ...] timeout 移出并获取列表的最后一个元素,阻塞等待直到超时或有元素可弹出。
RPOPLPUSH source destination 移出列表的最后一个元素,并将该元素添加到另一个列表(头部)。
BRPOPLPUSH source destination timeout 从列表弹出一个元素并插入到另一个列表,支持阻塞操作。

使用阻塞BRPOP模拟消息队列(左进右出 或者 右进左出

--生产者 发送消息
127.0.0.1:6379> LPUSH myqueue "message1" "message2" "message3"
(integer) 3

--消费者 消费信息 超时时间`0`表示一直等待
127.0.0.1:6379> BRPOP myqueue 0
1) "myqueue"
2) "message3"
(4.07s)
127.0.0.1:6379> BRPOP myqueue 0
1) "myqueue"
2) "message2"
127.0.0.1:6379> BRPOP myqueue 0
1) "myqueue"
2) "message1"
127.0.0.1:6379> BRPOP myqueue 0

Set 数据类型

命令 描述
SADD key member1 [member2] 向集合添加一个或多个成员
SCARD key 获取集合的成员数
SISMEMBER key member 判断 member 元素是否是集合 key 的成员
SMEMBERS key 返回集合中的所有成员
SMOVE source destination member 将 member 元素从 source 集合移动到 destination 集合
SREM key member1 [member2] 移除集合中一个或多个成员
SPOP key 移除并返回集合中的一个随机元素
SRANDMEMBER key [count] 返回集合中一个或多个随机数
SSCAN key cursor [MATCH pattern] [COUNT count] 迭代集合中的元素
SINTER key1 [key2] 返回给定所有集合的交集
SINTERSTORE destination key1 [key2] 返回给定所有集合的交集并存储在 destination 中
SUNION key1 [key2] 返回所有给定集合的并集
SUNIONSTORE destination key1 [key2] 所有给定集合的并集存储在 destination 集合中
SDIFF key1 [key2] 返回第一个集合与其他集合之间的差集
SDIFFSTORE destination key1 [key2] 返回给定所有集合的差集并存储在 destination 中
127.0.0.1:6379> sadd mset1 1 2 3 4 5 6
(integer) 6
127.0.0.1:6379> sadd mset2 2 4 6 8 10 
(integer) 5
127.0.0.1:6379> sunion mset1 mset2
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"
7) "8"
8) "10"
127.0.0.1:6379> sunionstore mset mset1 mset2
(integer) 8
127.0.0.1:6379> smembers mset
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"
7) "8"
8) "10"
127.0.0.1:6379> 

Sorted Set 数据类型

命令 描述
ZADD key score1 member1 [score2 member2] 向有序集合添加一个或多个成员,或者更新已存在成员的分数
ZCARD key 获取有序集合的成员数
ZCOUNT key min max 计算在有序集合中指定区间分数的成员数
ZINCRBY key increment member 有序集合中对指定成员的分数加上增量 increment
ZLEXCOUNT key min max 在有序集合中计算指定字典区间内成员数量
ZRANGE key start stop [WITHSCORES] 通过索引区间返回有序集合指定区间内的成员
ZRANGEBYLEX key min max [LIMIT offset count] 通过字典区间返回有序集合的成员
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT] 通过分数返回有序集合指定区间内的成员
ZRANK key member 返回有序集合中指定成员的索引
ZREM key member [member ...] 移除有序集合中的一个或多个成员
ZREMRANGEBYLEX key min max 移除有序集合中给定的字典区间的所有成员
ZREMRANGEBYRANK key start stop 移除有序集合中给定的排名区间的所有成员
ZREMRANGEBYSCORE key min max 移除有序集合中给定的分数区间的所有成员
ZREVRANGE key start stop [WITHSCORES] 返回有序集中指定区间内的成员,通过索引,分数从高到低
ZREVRANGEBYSCORE key max min [WITHSCORES] 返回有序集中指定分数区间内的成员,分数从高到低排序
ZREVRANK key member 返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序
ZSCORE key member 返回有序集中,成员的分数值
ZUNIONSTORE destination numkeys key [key ...] 计算给定的一个或多个有序集的并集,并存储在新的 key 中
ZSCAN key cursor [MATCH pattern] [COUNT count] 迭代有序集合中的元素(包括元素成员和元素分值)
ZINTERSTORE destination numkeys key [key ...] 计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 destination 中

标签:127.0,0.1,Redis,value,6379,key,常用命令,集合
From: https://www.cnblogs.com/20lxj666/p/18407930

相关文章

  • redis 简介
    Redis简介转载自:Redis简介|菜鸟教程(runoob.com)Redis(RemoteDictionaryServer)是一个开源的内存数据库,遵守BSD协议,它提供了一个高性能的键值(key-value)存储系统,常用于缓存、消息队列、会话存储等应用场景。性能极高:Redis以其极高的性能而著称,能够支持每秒数十万次的读......
  • git(二)——忽略文件版本追踪+分支管理常用命令
    .gitgnore—忽略文件的版本追踪    1.什么是.gitgnore?     .gitignore 文件是一个由Git版本控制系统使用的配置文件,它告诉 Git哪些文件和目录应该被忽略,即不应该被加入到版本控制中。通常用于排除一些不必要的文件,比如编译生成的文件、日志文件、个......
  • C++实现redis分布式锁
    实现Redis分布式锁在C++中通常涉及到使用Redis客户端库来与Redis服务器通信。下面是一个简单的例子,展示如何使用C++和Redis实现一个基于Redis的分布式锁。首先,你需要安装一个支持Redis的C++客户端库。例如,可以使用`lib_redis`或者`cpp-redis`等库。这里我将提供一个伪代码级别......
  • redis哨兵模式和集群模式
    ###哨兵模式 想象一下你有一家便利店,这个便利店就是你的Redis服务器。为了确保便利店能一直营业,你需要有人来监督这家店是否正常运作。这就是哨兵模式的基本思想。 -**哨兵(Sentinel)**:哨兵就像是便利店的保安,它们的任务是监视便利店是否正常开门营业(也就是监视Redis服务......
  • linux常用命令大全-2
    linux常用命令大全-3-CSDN博客linux常用命令大全-1-CSDN博客linux常用命令大全-5-CSDN博客linux常用大全-4-CSDN博客ls名称:ls语法:ls[-options][filelist]说明:ls(列出子目录内容清单)命令会是你最经常使用的程序命令之一。使用它最简单的格式,ls命令......
  • linux常用命令大全-5
    linux常用命令大全-3-CSDN博客linux常用命令大全-2-CSDN博客linux常用命令大全-1-CSDN博客linux常用大全-4-CSDN博客文件的链接文件的链接²在UNIX系统中,多个文件名可以指向存储介质中的同一个数据区,类似于Windows中的快捷方式。这种方式称为文件的链接。²文......
  • 解析Redisson 限流器源码
     工具类publicclassRedisUtils{  privatestaticfinalRedissonClientCLIENT=SpringUtils.getBean(RedissonClient.class);  /**  *限流  *  *@paramkey     限流key  *@paramrateType  限流类型  *@paramrate ......
  • redis基础
    一.前言我们前几篇文章说了mysql的基础,不是很深入,但是在我们开发中绝对够用,这篇文章我们来讲我们的redis,我们先来介绍一下我们的redis顺便介绍一下我们的nosql。在Web应用发展的初期,那时关系型数据库受到了较为广泛的关注和应用,原因是因为那时候Web站点基本上访问和并发不高......
  • 三、redis之strings类型
    strings是redis中使用最多的类型。redis官网中是这么描述strings的:Redisstringsstoresequencesofbytes,includingtext,serializedobjects,andbinaryarrays.可以看到Redisstrings保存的是sequencesofbytes,也就是字节序列。不仅可以保存字符串,而且还可以保存二......
  • ROS的通讯机制(一):常用命令
        一、rosnode:操作节点        rosnode是用于获取节点信息的命令。相关命令:rosnodeping测试到节点的连接状态rosnodelist列出活动节点rosnodeinfo打印节点信息rosnodemachine列出指定设备上节点rosnodekill......