Redis | Redis常用命令及示例总结(API)

news2024/11/23 10:27:46

前言

参考文档:http://doc.redisfans.com/index.html

本篇主要总结Redis的常用命令,笔者在记录命令时的格式如下:

  • 命令关键字命令示例;命令说明;
    • 命令参数解释及一些说明;

其中命令关键字使用小写是为了方便记忆,按规范来说应该采用大写字母。实际中大小写不区分,大写小写Redis都能识别命令。Redis在设置命令时有一些互通的思想,如下:

设置操作有则覆盖,无则新建。 在设置键值对时,若key已经存在,则将新值覆盖旧值;反之则创建一个新的键值对;
索引操作可以负数。 一些 start 和 end 的偏移量可以使用负数。负数偏移量表示从字符串最后开始计数, -1 表示最后一个字符,而 -2 表示倒数第二个位,以此类推;
使用inf表示最值。 inf可以在不知道有序集的最低和最高 score 值的情况下,使用 ZRANGEBYSCORE 这类命令;

文章会根据笔者的学习进度持续更新……


1. Key(键)

key为键值对的键;value为键值对的值;[]为可省内容;pattern为给定格式,类比正则式;seconds和timestamp表示时间;timeout表示时间,单位ms;host:port为主机名:端口号;ttl为毫秒值;offset为数字,表示初始下标;count为数字,表示数量;destination为键值对的键,表示目的键;

1.1 键的基本操作功能

del move rename renamenx migrate

  • delDEL key [key ...];删除给定的一个或多个 key;
  • moveMOVE key db;将当前数据库的 key 移动到给定的数据库 db 当中;
  • renameRENAME key newkey;将 key 改名为 newkey;
  • renamenxRENAMENX key newkey;当且仅当 newkey 不存在时,将 key 改名为 newkey;
  • migrateMIGRATE host port key destination-db timeout [COPY] [REPLACE];将 key 原子性地从当前实例传送到目标实例 host:port 的指定数据库上,一旦传送成功, key 保证会出现在目标实例上,而当前实例上的 key 会被删除;
    • COPY :不移除源实例上的 key;
    • REPLACE :替换目标实例上已存在的 key;

1.2 键的获取功能

type exists randomkey keys

  • typeTYPE key;返回数据库键对应的类型;
  • existsEXISTS key;检查给定 key 是否存在;
  • randomkeyRANDOMKEY;从当前数据库中随机返回(不删除)一个 key ;
  • keysKEYS pattern;查找所有符合给定模式 pattern 的 key;
    • KEYS * 匹配数据库中所有 key;
    • KEYS h?llo 匹配 hello , hallo 和 hxllo 等;
    • KEYS h*llo 匹配 hllo 和 heeeeello 等;
    • KEYS h[ae]llo 匹配 hello 和 hallo ,但不匹配 hillo;
    • 特殊符号用 \ 隔开;

1.3 键的排序功能

sort asc/desc/alpha/by/limit/get/store

  • sortSORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC | DESC] [ALPHA] [STORE destination];返回或保存给定列表、集合、有序集合 key 中经过排序的元素。排序默认以数字作为对象,值被解释为双精度浮点数,然后进行比较;
  • sortSORT key;返回键值从小到大排序的结果;
  • sort ... ascSORT key ASC;返回键值从小到大排序的结果;
  • sort ... descSORT key DESC;返回键值从大到小排序的结果;
  • sort ... alphaSORT key ALPHA;可以对包含字符串的键进行排列;
  • sort ... by ...SORT key BY pattern;可以指定某些字符串键,或者某个哈希键说包含的某些域来作为权重,对一个键排序;
  • sort ... limit ...SORT key LIMIT offset count;可以让结果只返回其中部分已排序的元素;
  • sort ... get ...SORT key GET pattern;可以在键被排序后,根据被排序的元素,以及 GET 选项指定的模式,查找并返回某些键的值;
  • sort ... store ...SORT key STORE destination;可以将排序结果保存在指定的键里面;

1.4 生存时间的功能

expire pexpire expireat persist ttl pttl

  • expireEXPIRE key seconds;将键key的生存时间设置为 seconds 秒;
  • pexpirePEXPIRE key milliseconds;与 EXPIRE 命令的作用类似,将键key的生存时间设置为 milliseconds 毫秒;
  • expireatEXPIREAT key timestamp;将键 key 的过期时间设置为 timestamp 所指定的秒数时间戳;
  • pexpireatPEXPIREAT key milliseconds-timestamp;与 EXPIREAT 命令的作用类似,将键 key 的过期时间设置为 milliseconds-timestamp 所指定的毫秒数时间戳;
  • persistPERSIST key;移除给定 key 的生存时间,将这个 key 从『易失的』(带生存时间 key )转换成『持久的』(一个不带生存时间、永不过期的 key );
  • ttlTTL key;以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live);
  • pttlPTTL key;这个命令类似于 TTL 命令,但它以毫秒为单位返回 key 的剩余生存时间,而不是像 TTL 命令那样,以秒为单位;

1.5 序列化与反序列化的功能

dump restore

  • dumpDUMP key;序列化给定 key ,并返回被序列化的值,使用 RESTORE 命令可以将这个值反序列化为 Redis 键。序列化生成的值有以下几个特点:
    • 它带有 64 位的校验和,用于检测错误, RESTORE 在进行反序列化之前会先检查校验和;
    • 值的编码格式和 RDB 文件保持一致;
    • RDB 版本会被编码在序列化值当中,如果因为 Redis 的版本不同造成 RDB 格式不兼容,那么 Redis 会拒绝对这个值进行反序列化操作;
  • restoreRESTORE key ttl serialized-value;反序列化给定的序列化值,并将它和给定的 key 关联。参数 ttl 以毫秒为单位为 key 设置生存时间;如果 ttl 为 0 ,那么不设置生存时间;

1.6 键的迭代遍历功能

scan

  • scanSCAN cursor [MATCH pattern] [COUNT count];SCAN 命令是一个基于游标的迭代器(cursor based iterator): SCAN 命令每次被调用之后, 都会向用户返回一个新的游标, 用户在下次迭代时需要使用这个新游标作为 SCAN 命令的游标参数, 以此来延续之前的迭代过程;
    • 当 SCAN 命令的游标参数被设置为 0 时, 服务器将开始一次新的迭代;
    • 而当服务器向用户返回值为 0 的游标时, 表示迭代已结束;

1.7 OBJECT命令

refcount ecoding idletime

  • object refcountOBJECT REFCOUNT key;返回给定 key 引用所储存的值的次数。此命令主要用于除错;
  • object ecodingOBJECT ENCODING key;查看一个数据库键的值对象编码;
  • object idletimeOBJECT IDLETIME key;返回给定 key 自储存以来的空转时间,单位秒;


2. String(字符串)

key为键值对的键;value为键值对的值;increment为浮点数增量;offset为数字,表示偏移量;start和end为数字,表示索引;destkey表示结果;

2.1 键值对的操作功能

set get setnx getset mset mget msetnx setex psetex

  • setSET key "value";设置键值对;
  • getGET key;根据键获取值;
  • setnxSETNX key value;将 key 的值设为 value ,当且仅当 key 不存在;
  • getsetGETSET key value;将给定 key 的值设为 value ,并返回 key 的旧值(old value);
  • msetMSET key value [key value ...];同时设置一个或多个 key-value 对;
  • mgetMGET key [key ...];返回所有(一个或多个)给定 key 的值value;
  • msetnxMSETNX key value [key value ...];同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在才成功;
  • setexSETEX key seconds value;将值 value 关联到 key ,并将 key 的生存时间设为 seconds (以秒为单位);
  • psetexPSETEX key milliseconds value;这个命令和 SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间,而不是像 SETEX 命令那样,以秒为单位;

2.2 获取与追加的功能

strlen append setrange getrange

  • strlenSTRLEN key;返回 key 所储存的字符串值的长度;
  • appendAPPEND key value;如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾;
  • setrangeSETRANGE key offset value;用 value 参数覆写(overwrite)给定 key 所储存的字符串值,从偏移量 offset 开始;
  • getrangeGETRANGE key [start] [end];返回 key 中字符串值的子字符串,字符串的截取范围由 start 和 end 两个偏移量决定(包括 start 和 end 在内)(负数偏移量表示从字符串最后开始计数, -1 表示最后一个字符);

2.3 数字与浮点数的操作功能

incrby incr incrbyfloat decrby decr

  • incrbyINCRBY key increment;将 key 所储存的整数值加上增量 increment;
  • incrINCR key;将 key 中储存的数字值增 1;
  • incrbyfloatINCRBYFLOAT key increment;为 key 中所储存的值加上浮点数增量 increment;
  • decrbyDECRBY key decrement;将 key 所储存的值减去减量 decrement;
  • decrDECR key;将 key 中储存的数字值减 1;

2.4 二进制位操作的功能

setbit getbit bitcount bitop

  • setbitSETBIT key offset value;对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit);
  • getbitGETBIT key offset;对 key 所储存的字符串值,获取指定偏移量上的位(bit);
  • bitcountBITCOUNT key [start] [end];计算给定字符串中,被设置为 1 的比特位的数量;
  • bitopBITOP operation destkey key [key ...];对一个或多个保存二进制位的字符串 key 进行位元操作,并将结果保存到 destkey 上(operation 可以是 AND 、 OR 、 NOT 、 XOR 这四种操作中的任意一种);


3. List(列表)

key为键值对的键;value为键值对的值;[]为可省内容,这里表示一个或多个;timeout为数字,表示超时时间;index为数字,表示下标;pivot为某个值;start和stop为区间的下标;count为数字,表示计数器;source和destination为两个链表的key,前者表示来源,后者表示目的;

3.1 添加与修改元素的功能

rpush rpushx lpush lpushx linsert lset

  • rpushRPUSH key value [value ...];将一个或多个值 value 插入到列表 key 的表尾(最右边),当 key 不存在时,会创建空列表并执行 LPUSH 操作;
  • rpushxRPUSHX key value;将值 value 插入到列表 key 的表尾,当且仅当 key 存在并且是一个列表时操作成功;
  • lpushLPUSH key value [value ...];将一个或多个值 value 插入到列表 key 的表头(最左边)。当 key 不存在时,会创建空列表并执行 LPUSH 操作;
  • lpushxLPUSHX key value;将值 value 插入到列表 key 的表头,当且仅当 key 存在并且是一个列表时操作成功;
  • linsert ... before|afterLINSERT key BEFORE|AFTER pivot value;将值 value 插入到列表 key 当中,位于值 pivot 之前或之后;
  • lsetLSET key index value;将列表 key 下标为 index 的元素的值设置为 value;

3.2 移除元素的功能

lpop blpop rpop brpop lrem

  • lpopLPOP key;移除并返回列表 key 的头元素;
  • blpopBLPOP key [key ...] timeout;列表的阻塞式(blocking)弹出原语。当给定多个 key 参数时,按参数 key 的先后顺序依次检查各个列表,弹出第一个非空列表的头元素;
  • rpopRPOP key;移除并返回列表 key 的尾元素;
  • brpopBRPOP key [key ...] timeout;列表的阻塞式(blocking)弹出原语。当给定多个 key 参数时,按参数 key 的先后顺序依次检查各个列表,弹出第一个非空列表的尾部元素;
  • lremLREM key count value;根据参数 count 的值,移除列表中与参数 value 相等的元素;
    • count > 0 : 从表头开始向表尾搜索,移除与 value 相等的元素,数量为 count;
    • count < 0 : 从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count 的绝对值;
    • count = 0 : 移除表中所有与 value 相等的值;

3.3 列表与元素的获取功能

llen lingex lrange

  • llenLLEN key;返回列表 key 的长度;
  • lingexLINDEX key index;返回列表 key 中,下标为 index 的元素;
  • lrangeLRANGE key start stop;返回列表 key 中指定区间 [start, stop] 内的元素;

3.4 列表的操作功能

ltrim rpoplpush brpoplpush

  • ltrimLTRIM key start stop;对一个列表进行修剪(trim),保留区间 [start, stop] 内的元素;
  • rpoplpushRPOPLPUSH source destination;在一个原子时间内,执行以下两个动作:
    • 将列表 source 中的最后一个元素(尾元素)弹出,并返回给客户端;
    • 将 source 弹出的元素插入到列表 destination ,作为 destination 列表的的头元素;
  • brpoplpushBRPOPLPUSH source destination timeout;是 RPOPLPUSH 的阻塞版本;
    • 当给定列表 source 不为空时, BRPOPLPUSH 的表现和 RPOPLPUSH 一样;
    • 当列表 source 为空时, BRPOPLPUSH 命令将阻塞连接,直到等待超时,或有另一个客户端对 source 执行 LPUSH 或 RPUSH 命令为止;


4. Hash(哈希表)

key为哈希表;field为键值对的键,也称域;value为键值对的值;increment为数字,表示增量;

4.1 添加和修改键值对的功能

hset mhset hsetnx hincrby hincrbyfloat

  • hsetHSET key field value;将哈希表 key 中的域 field 的值设为 value;
  • mhsetHMSET key field value [field value ...];同时将多个 field-value (域-值)对设置到哈希表 key 中;
  • hsetnxHSETNX key field value;将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在。若域 field 已经存在,该操作无效;
  • hincrbyHINCRBY key field increment;为哈希表 key 中的域 field 的值加上整数增量 increment;
  • hincrbyfloatHINCRBYFLOAT key field increment;为哈希表 key 中的域 field 加上浮点数增量 increment;

4.2 移除键值对的功能

hdel

  • hdelHDEL key field [field ...];删除哈希表 key 中的一个或多个指定域,不存在的域将被忽略;

4.3 键值对的获取功能

hkeys hvals hgetall hexists hget hmget hlen

  • hkeysHKEYS key;返回哈希表 key 中的所有域 field;
  • hvalsHVALS key;返回哈希表 key 中所有域的值 value;
  • hgetallHGETALL key;返回哈希表 key 中,所有的域 field 和值 value;
  • hexistsHEXISTS key field;查看哈希表 key 中,给定域 field 是否存在;
  • hgetHGET key field;返回哈希表 key 中给定域 field 的值;
  • hmgetHMGET key field [field ...];返回哈希表 key 中,一个或多个给定域的值;
  • hlenHLEN key;返回哈希表 key 中域的数量;

4.4 哈希表的迭代遍历功能

hscan

  • hscanHSCAN key cursor [MATCH pattern] [COUNT count];参考《键的迭代遍历功能 scan》;


5. Set(集合)

key为集合的键;member为元素;[]为可省内容,这里表示一个或多个;source为源头集合;destination为目标集合;count为数字;

5.1 添加和修改元素的功能

sadd

  • saddSADD key member [member ...];将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略;

5.2 移除元素的功能

spop srem

  • spopSPOP key;移除并返回集合中的一个随机元素;
  • sremSREM key member [member ...];移除集合 key 中的一个或多个 member 元素,不存在的 member 元素会被忽略;

5.3 元素的获取功能

smembers sismember srandmember

  • smembersSMEMBERS key;返回集合 key 中的所有成员;
  • sismemberSISMEMBER key member;判断集合 key 是否包含 member 元素;
  • srandmemberSRANDMEMBER key [count];如果命令执行时,只提供了 key 参数,那么返回集合中的一个随机元素;
    • 如果 count 为正数,且小于集合基数,那么命令返回一个包含 count 个元素的数组,数组中的元素各不相同。如果 count 大于等于集合基数,那么返回整个集合;
    • 如果 count 为负数,那么命令返回一个数组,数组中的元素可能会重复出现多次,而数组的长度为 count 的绝对值;

5.4 集合的获取功能

scard sdiff sdiffstore sinter sinterstore sunion sunionstore

  • scardSCARD key;返回集合 key 中元素的数量;
  • sdiffSDIFF key [key ...];返回一个集合的全部成员,该集合是所有给定集合之间的差集;
  • sdiffstoreSDIFFSTORE destination key [key ...];这个命令的作用和 SDIFF 类似,但它将结果保存到 destination 集合,而不是简单地返回结果集;
  • sinterSINTER key [key ...];返回一个集合的全部成员,该集合是所有给定集合的交集;
  • sinterstoreSINTERSTORE destination key [key ...];这个命令类似于 SINTER 命令,但它将结果保存到 destination 集合,而不是简单地返回结果集;
  • sunionSUNION key [key ...];返回一个集合的全部成员,该集合是所有给定集合的并集;
  • sunionstoreSUNIONSTORE destination key [key ...];这个命令类似于 SUNION 命令,但它将结果保存到 destination 集合,而不是简单地返回结果集;

5.5 集合的操作功能

smove

  • smoveSMOVE source destination member;将 member 元素从 source 集合移动到 destination 集合;

5.6 集合的迭代遍历功能

sscan

  • sscanSSCAN key cursor [MATCH pattern] [COUNT count];参考《键的迭代遍历功能 scan》;


6. SortedSet(有序集合)

key为键值对的键;member为元素;score为分数权重值;[]为可省内容,这里表示一个或多个;destination为目标集合;count为数字;min和max表示浮点数范围区间;start和stop为区间的下标;

6.1 添加和修改元素的功能

zadd zincrby

  • zaddZADD key score member [[score member] [score member] ...];将一个或多个 member 元素及其 score 值加入到有序集 key 当中;
  • zincrbyZINCRBY key increment member;为有序集 key 的成员 member 的 score 值加上增量 increment ;

6.2 移除元素的功能

zrem zremrangebyrank zremrangebyscore

  • zremZREM key member [member ...];移除有序集 key 中的一个或多个成员,不存在的成员将被忽略;
  • zremrangebyrankZREMRANGEBYRANK key start stop;移除有序集 key 中,指定下标排名(rank)区间 [start, stop] 内的所有成员;
  • zremrangebyscoreZREMRANGEBYSCORE key min max;移除有序集 key 中,所有 score 值介于 [min, max] 之间;

6.3 元素的获取功能

zrange zrevrange zrangebyscore zrevrangebyscore zrank zrevrank zscore

  • zrangeZRANGE key start stop [WITHSCORES];返回有序集 key 中,指定下标区间 [start, stop] 内的元素。其中成员的位置按 score 值递增(从小到大)来排序;
  • zrevrangeZREVRANGE key start stop [WITHSCORES];返回有序集 key 中,指定区间 [start, stop] 内的元素。其中成员的位置按 score 值递减(从大到小)来排列;
  • zrangebyscoreZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count];返回有序集 key 中,所有 score 值介于 [min, max] 之间的成员有序集成员按 score 值递增(从小到大)次序排列;
    • WITHSCORES 参数决定结果集是单单返回有序集的成员,还是将有序集成员及其 score 值一起返回;
    • 可以使用 (min(max 来指定开区间;
  • zrangebyscore ... -inf +infZRANGEBYSCORE key -inf +inf;显示整个有序集;
    • 相当于min取负无穷,max取正无穷,inf可以在不知道有序集的最低和最高 score 值的情况下,使用 ZRANGEBYSCORE 这类命令;
  • zrevrangebyscoreZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count];返回有序集 key 中, score 值介于 [min, max] 之间的所有的成员。有序集成员按 score 值递减(从大到小)的次序排列;
    • 其他类似同上;
  • zrankZRANK key member;返回有序集 key 中元素的排名 rank。其中有序集成员按 score 值递增(从小到大)顺序排列;
  • zrevrankZREVRANK key member;返回有序集 key 中元素的排名 rank。其中有序集成员按 score 值递减(从大到小)排序;
  • zscoreZSCORE key member;返回有序集 key 中,成员 member 的 score 值;

6.4 集合的获取功能

zcard zcount zunionstore zinterstore

  • zcardZCARD key;返回集合 key 中元素的数量;
  • zcountZCOUNT key min max;返回有序集 key 中, score 值在 min 和 max 之间(默认包括 score 值等于 min 或 max )的成员的数量;
  • zunionstoreZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX];计算给定的一个或多个有序集的并集,其中给定 key 的数量必须以 numkeys 参数指定,并将该并集(结果集)储存到 destination 。
    • 默认情况下,结果集中某个成员的 score 值是所有给定集下该成员 score 值之和;
    • WEIGHTS表示乘法因子,默认为1,并集后的元素的分值 score 为 score*weight;
    • AGGREGATE可以指定并集的结果集的聚合方式;
  • zinterstoreZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX];计算给定的一个或多个有序集的交集,其中给定 key 的数量必须以 numkeys 参数指定,并将该交集(结果集)储存到 destination ;
    • 类似性质同上;

6.5 集合的迭代遍历功能

zscan

  • zscanZSCAN key cursor [MATCH pattern] [COUNT count];参考《键的迭代遍历功能 scan》;


7. Pub/Sub(发布/订阅)

channel表示频道名;pattern为一个通配符,表示模式名;message表示消息;

7.1 频道的订阅与退订

subscribe unsubscribe

  • subscribeSUBSCRIBE channel [channel ...];订阅给定的一个或多个频道的信息;
  • subscribeSUBSCRIBE channel:message;关注 “某个键执行了什么命令”,返回键空间通知;
  • subscribeSUBSCRIBE channel:del;关注 “某个命令被什么键执行了”,返回键事件通知;
  • unsubscribeUNSUBSCRIBE [channel [channel ...]];退订给定的频道;

7.2 模式的订阅与退订

psubscribe punsubscribe

  • psubscribePSUBSCRIBE pattern [pattern ...];订阅一个或多个符合给定模式的频道。以 /* 作为匹配符;
  • punsubscribePUNSUBSCRIBE [pattern [pattern ...]];退订所有给定模式;

7.3 发送消息

publish

  • publishPUBLISH channel message;信息 message 发送到指定的频道 channel ;

7.4 查看订阅信息

pubsub channels/numsub/bumpat

  • pubsub channelsPUBSUB CHANNELS [pattern];列出当前的活跃频道。给出 pattern 参数,那么只列出和给定模式 pattern 相匹配的那些活跃频道;
  • pubsub numsubPUBSUB NUMSUB [channel-1 ... channel-N];返回给定频道的订阅者数量, 订阅模式的客户端不计算在内。;
  • pubsub bumpatPUBSUB NUMPAT;返回订阅模式的数量;


8. Transaction(事务)

key为键值对的键;

watch unwatch multi exec discard

  • watchWATCH key [key ...];监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断;
  • unwatchUNWATCH;取消 WATCH 命令对所有 key 的监视;
  • multiMULTI;标记一个事务块的开始;
  • execEXEC;执行所有事务块内的命令。事务成功与否与 WATCH 命令相关;
  • discardDISCARD;取消事务,放弃执行事务块内的所有命令;


9. Script(脚本)

sha1表示校验码;script表示脚本;numkeys为数字,表示参数个数; arg表示参数;

9.1 校验相关

eval evalsha

  • evalEVAL script numkeys key [key ...] arg [arg ...];对 Lua 脚本进行求值;
  • evalshaEVALSHA sha1 numkeys key [key ...] arg [arg ...];根据给定的 sha1 校验码,对缓存在服务器中的脚本进行求值;

9.2 SCRIPT 命令

script exists/flush/kill/load

  • script existsSCRIPT EXISTS script [script ...];给定一个或多个脚本的 SHA1 校验和,返回一个包含 0 和 1 的列表,表示校验和所指定的脚本是否已经被保存在缓存当中;
  • script flushSCRIPT FLUSH;清除所有 Lua 脚本缓存;
  • script killSCRIPT KILL;杀死当前正在运行的 Lua 脚本,当且仅当这个脚本没有执行过任何写操作时,这个命令才生效;
  • script loadSCRIPT LOAD;将脚本 script 添加到脚本缓存中,但并不立即执行这个脚本;


10. Connection(连接)

password表示密码;message表示信息;index为数字,表示下标;

select ping quit auth echo

  • selectSELECT index;切换到指定的数据库,数据库索引号 index 用数字值指定,以 0 作为起始索引值;
  • pingPING;使用客户端向 Redis 服务器发送一个 PING ,如果服务器运作正常的话,会返回一个 PONG。通常用于测试与服务器的连接是否仍然生效,或者用于测量延迟值;
  • quitQUIT;请求服务器关闭与当前客户端的连接;
  • authAUTH password;键入密码。通过设置配置文件中 requirepass 项的值(使用命令 CONFIG SET requirepass password ),可以使用密码来保护 Redis 服务器;
  • echoECHO message;打印一个特定的信息 message ,测试时使用;


11. Server(服务器)

section为可选参数;connection-name为字符串,表示当前连接的名字;ip表示IP地址;port表示端口号;parameter表示配置;value表示配置的参数;argument表示参数;

11.1 服务器的获取功能

dbsize time lastsave monitor

  • dbsizeDBSIZE;返回当前数据库的 key 的数量;
  • timeTIME;返回当前服务器时间;
  • lastsaveLASTSAVE;返回最近一次 Redis 成功将数据保存到磁盘上的时间,以 UNIX 时间戳格式表示;
  • monitorMONITOR;实时打印出 Redis 服务器接收到的命令,调试用;

11.2 服务器的操作的功能

flushdb flushall shutdown salveof

  • flushdbFLUSHDB;清空当前数据库中的所有 key;
  • flushallFLUSHALL;清空整个 Redis 服务器的数据(删除所有数据库的所有 key)。此命令从不失败;
  • shutdownSHUTDOWN;停止所有客户端;如果有至少一个保存点在等待,执行 SAVE 命令;如果 AOF 选项被打开,更新 AOF 文件;关闭 redis 服务器;
  • slaveofSLAVEOF ip port;在 Redis 运行时动态地修改复制(replication)功能的行为。可以将当前服务器转变为指定服务器的从属服务器;
  • slaveof no oneSLAVEOF NO ONE;使得这个从属服务器关闭复制功能,并从从属服务器转变回主服务器,原来同步所得的数据集不会被丢弃;
  • syncSYNC;用于复制功能(replication)的内部命令;
  • psyncPSYNC <MASTER_RUN_ID> <OFFSET>;用于复制功能(replication)的内部命令;

11.3 服务器持久化相关

save bgsave bgrewriteaof

  • saveSAVE;执行一个同步保存操作,将当前 Redis 实例的所有数据快照以 RDB 文件的形式保存到硬盘;
  • bgsaveBGSAVE;在后台异步(Asynchronously)保存当前数据库的数据到磁盘;
  • bgrewriteaofBGREWRITEAOF;AOF 文件后台重写;

11.4 客户端相关操作

client list/setname/getname/kill

  • client listCLIENT LIST;以易读的格式,返回所有连接到服务器的客户端信息和统计数据;
  • client setnameCLIENT SETNAME connection-name;为当前连接分配一个名字;
  • client getnameCLIENT GETNAME;返回 CLIENT SETNAME 命令为连接设置的名字;
  • client killCLIENT KILL ip:port;关闭地址为 ip:port 的客户端;

11.5 服务器的配置参数相关

config set/get/rewrite/resetstat

  • config setCONFIG SET parameter value;动态地调整 Redis 服务器的配置(configuration)而无须重启;
  • config getCONFIG GET parameter;取得运行中的 Redis 服务器的配置参数(;
  • config rewriteCONFIG REWRITE;对启动 Redis 服务器时所指定的 redis.conf 文件进行改写。通过尽可能少的修改, 将服务器当前所使用的配置记录到 redis.conf 文件中;
  • config resetstatCONFIG RESETSTAT;重置 INFO 命令中的某些统计数据;

11.6 Slow log 慢查询日志相关

slowlog get/len/reset

  • slowlogSLOWLOG subcommand [argument];用来记录查询执行时间的日志系统;
  • slowlogSLOWLOG GET [number];打印所有 slow log ,最大长度取决于 slowlog-max-len 选项的值;
  • slowlogSLOWLOG GET number;打印指定数量的日志;
  • slowlogSLOWLOG LEN;查看当前日志的数量;
  • reset:SLOWLOG RESET;清除所有慢查询日志;

11.7 获取Redis服务器的各种信息和统计数值

info

  • infoINFO [section];以一种易于解释(parse)且易于阅读的格式,返回关于 Redis 服务器的各种信息和统计数值。可选参数 section 如下:
    • server : 一般 Redis 服务器信息,包含以下域:
      • redis_version : Redis 服务器版本;
      • redis_git_sha1 : Git SHA1;
      • redis_git_dirty : Git dirty flag;
      • os : Redis 服务器的宿主操作系统;
      • arch_bits : 架构(32 或 64 位);
      • multiplexing_api : Redis 所使用的事件处理机制;
      • gcc_version : 编译 Redis 时所使用的 GCC 版本;
      • process_id : 服务器进程的 PID;
      • run_id : Redis 服务器的随机标识符(用于 Sentinel 和集群);
      • tcp_port : TCP/IP 监听端口;
      • uptime_in_seconds : 自 Redis 服务器启动以来,经过的秒数;
      • uptime_in_days : 自 Redis 服务器启动以来,经过的天数;
      • lru_clock : 以分钟为单位进行自增的时钟,用于 LRU 管理;
    • clients : 已连接客户端信息,包含以下域:
      • connected_clients : 已连接客户端的数量(不包括通过从属服务器连接的客户端);
      • client_longest_output_list : 当前连接的客户端当中,最长的输出列表;
      • client_longest_input_buf : 当前连接的客户端当中,最大输入缓存;
      • blocked_clients : 正在等待阻塞命令(BLPOP、BRPOP、BRPOPLPUSH)的客户端的数量
    • memory : 内存信息,包含以下域:
      • used_memory : 由 Redis 分配器分配的内存总量,以字节(byte)为单位;
      • used_memory_human : 以人类可读的格式返回 Redis 分配的内存总量;
      • used_memory_rss : 从操作系统的角度,返回 Redis 已分配的内存总量(俗称常驻集大小)。这个值和 top 、 ps 等命令的输出一致;
      • used_memory_peak : Redis 的内存消耗峰值(以字节为单位);
      • used_memory_peak_human : 以人类可读的格式返回 Redis 的内存消耗峰值;
      • used_memory_lua : Lua 引擎所使用的内存大小(以字节为单位);
      • mem_fragmentation_ratio : used_memory_rss 和 used_memory 之间的比率;
      • mem_allocator : 在编译时指定的, Redis 所使用的内存分配器。可以是 libc 、 jemalloc 或者 tcmalloc;
    • persistence : RDB 和 AOF 的相关信息;
    • stats: 一般统计信息;
    • replication : 主/从复制信息;
    • cpu : CPU 计算量统计信息;
    • commandstats : Redis 命令统计信息;
    • cluster : Redis 集群信息;
    • keyspace : 数据库相关的统计信息;
    • all : 返回所有信息;
    • default: 返回默认选择的信息;



最后

\color{blue}{\rm\small{新人制作,如有错误,欢迎指出,感激不尽!}}

\color{blue}{\rm\small{欢迎关注我,并与我交流!}}

\color{blue}{\rm\small{如需转载,请标注出处!}}

最后编辑于:2024-11-11 21:10:53


喜欢的朋友记得点赞、收藏、关注哦!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2244495.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【VTK】MFC中使用VTK9.3

MFC中如果使用VTK 碎碎念一、vtk环境配置二、具体实现1、新建类2. 自定义控件3、跑个栗子 总结 碎碎念 如果不是老程序用的MFC&#xff0c;我才不想用MFC去使用VTK呢。 一、vtk环境配置 关于环境配置你可以看这篇文章&#xff0c;在这里不过多赘述。需要注意要选择支持MFC&a…

《译文》2024年11月数维杯国际大学生数学建模挑战赛题目

# 赛题正式发布 2024年第十届数维杯国际大学生数学建模挑战赛顺利开赛&#xff0c;竞赛开始时间为北京时间2024年11月15日09:00至北京时间2024年11月19日09:00&#xff0c;共计4天&#xff0c;竞赛题目正式发布&#xff0c;快来一起围观&#xff0c;你认为今年的哪个题目更具有…

SentenceTransformers×Milvus:如何进行向量相似性搜索

你可曾经历过在 Meetup 上听到一段绝妙的内容&#xff0c;但发现回忆不起具体的细节&#xff1f;作为一名积极组织和参与 Meetup 的开发者关系工程师&#xff0c;我常常会有这种感受。 为了解决这个问题&#xff0c;我开始探索使用相似性搜索技术来筛选大量的非结构化数据。非结…

如何在 Ubuntu 20.04 上的 PyCharm 中使用 Conda 安装并配置 IPython 交互环境

如何在 Ubuntu 20.04 上的 PyCharm 中使用 Conda 安装并配置 IPython 交互环境 要在 Ubuntu 20.04 上的 PyCharm 中配置 IPython 交互环境&#xff0c;并使用 Conda 作为包管理器进行安装&#xff0c;你需要遵循一系列明确的步骤。这些步骤将确保你可以在 PyCharm 中使用 Cond…

VMware虚拟机(Ubuntu或centOS)共享宿主机网络资源

VMware虚拟机(Ubuntu或centOS)共享宿主机网络资源 由于需要在 Linux 环境下进行一些测试工作&#xff0c;于是决定使用 VMware 虚拟化软件来安装 Ubuntu 24.04 .1操作系统。考虑到测试过程中需要访问 Github &#xff0c;要使用Docker拉去镜像等外部网络资源&#xff0c;因此产…

近期两篇NeRF/3DGS-based SLAM方案赏析:TS-SLAM and MBA-SLAM

原文链接&#xff1a;近期两篇NeRF/3DGS-based SLAM方案赏析&#xff1a;TS-SLAM and MBA-SLAM paper1&#xff1a;TS-SLAM: 基于轨迹平滑约束优化的神经辐射场SLAM方法 导读 本文提出了TS-SLAM&#xff0c;一种改进的基于神经辐射场&#xff08;NeRF&#xff09;的SLAM方法…

C# 实现BLE Client 程序与ardunioESP32 通信

编写一个C# Windows 桌面应用程序&#xff0c;与ardunio ESP32 Client 通信。 预备工作 建立一个项目Nuget安装 Microsoft.Windows.SDK.Contracts右击引用菜单中点击&#xff1a;从 packages.config 迁移到 PackageReference using System; using System.Collections.Generi…

【c++丨STL】stack和queue的使用及模拟实现

&#x1f31f;&#x1f31f;作者主页&#xff1a;ephemerals__ &#x1f31f;&#x1f31f;所属专栏&#xff1a;C、STL 目录 前言 一、什么是容器适配器 二、stack的使用及模拟实现 1. stack的使用 empty size top push和pop swap 2. stack的模拟实现 三、queue的…

MyBatis-Plus分页插件IPage用法

首先就是service接口需要继承IService<entity> 然后就是业务类实现类中需要继承ServiceImpl<Mapper,entity> Mapper正常写法&#xff0c;继承baseMapepr<entity> IPage的使用方式 QueryWrapper<MdSaleDayPhone> queryWrappernew QueryWrapper<>…

基于阿里云服务器部署静态的website

目录 一&#xff1a;创建服务器实例并connect 二&#xff1a;本地文件和服务器share 三&#xff1a;关于IIS服务器的安装预配置 四&#xff1a;设置安全组 五&#xff1a;建站流程 六&#xff1a;关于备案 一&#xff1a;创建服务器实例并connect 创建好的服务器实例在云…

Android Studio 设置不显示 build-tool 无法下载

2024版本查看build-tool版本 File -> Settings -> Languages & Frameworks -> Android SDK 或者直接打开Settings后搜索“SDK” 解决方案 将 Android Studio 升级到2022.2.1以上的版本将 C:/Windows/System32/drivers/etc/hosts 文件用管理员身份打开&#xff0c…

【JavaSE】【网络编程】UDP数据报套接字编程

目录 一、网络编程简介二、Socket套接字三、TCP/UDP简介3.1 有连接 vs 无连接3.2 可靠传输 vs 不可靠传输3.3 面向字节流 vs 面向数据报3.4 双向工 vs 单行工 四、UDP数据报套接字编程4.1 API介绍4.1.1 DatagramSocket类4.1.1.1 构造方法4.1.1.2 主要方法 4.1.2 DatagramPocket…

MFC图形函数学习10——画颜色填充矩形函数

一、介绍绘制颜色填充矩形函数 前面介绍的几个绘图函数填充颜色都需要专门定义画刷&#xff0c;今天介绍的这个函数可以直接绘制出带有填充色的矩形。 原型1&#xff1a;void FillSolidRect(int x,int y,int cx,int cy,COLORREF color); 参数&#xff1a;&a…

macOS 无法安装第三方app,启用任何来源的方法

升级新版本 MacOS 后&#xff0c;安装下载的软件时&#xff0c;不能在 ”安全性与隐私” 中找不到 ”任何来源” 选项。 1. 允许展示任何来源 点击 启动器 (Launchpad) – 其他 (Other) – 终端 (Terminal)&#xff1a; 打开终端后&#xff0c;输入以下代码回车&#xff1a; …

基于“开源 2+1 链动模式 S2B2C 商城小程序”的社区团购运作主体特征分析

摘要&#xff1a;本文聚焦社区团购运作主体&#xff0c;深入探讨便利连锁店型与社会力量型运作主体在社区团购中的特点&#xff0c;并结合“开源 21 链动模式 S2B2C 商城小程序”&#xff0c;分析其对社区团购的影响与作用机制&#xff0c;旨在为社区团购的进一步发展与优化提供…

Properties文件:Properties属性文件键值对的获取方法、如何写入信息到Properties属性文件、Properties对象的用法

目录 1、什么是Properties文件&#xff1f;和普通txt文件有什么区别&#xff1f; 2、读写Properties文件 2.1 代码演示-读取属性文件 2.2、代码演示-把键值对的数据写入到属性文件中去 1、什么是Properties文件&#xff1f;和普通txt文件有什么区别&#xff1f; 我们都知道…

枫清科技亮相 2024 中国 5G+工业互联网大会,推动 AI 赋能新型工业化

11 月 19 日&#xff0c;2024 中国 5G工业互联网大会在武汉盛大开幕&#xff0c;吸引了来自国内外的行业专家与领先企业。本次大会以“实数融合 智造翘楚”为主题&#xff0c;重点围绕 5G 与工业互联网的深度融合应用、人工智能、智能网联汽车等领域展开讨论与成果展示。作为行…

Spring Boot 3.x + OAuth 2.0:构建认证授权服务与资源服务器

Spring Boot 3.x OAuth 2.0&#xff1a;构建认证授权服务与资源服务器 前言 随着Spring Boot 3的发布&#xff0c;我们迎来了许多新特性和改进&#xff0c;其中包括对Spring Security和OAuth 2.0的更好支持。本文将详细介绍如何在Spring Boot 3.x版本中集成OAuth 2.0&#xf…

使用Python编写脚本,为Excel表格添加水印

简介 这是本人实习中的一个小任务&#xff0c;经过无数努力&#xff0c;终于搞出来了。网上很多资料和博客都是lese&#xff0c;完全没有理清楚水印在excel中的定义是什么&#xff0c;插个图片就是水印吗&#xff1f;当然不是&#xff01;如果帮助到佬们请点个赞吧。 Ecxel中…

MacOS下的Opencv3.4.16的编译

前言 MacOS下编译opencv还是有点麻烦的。 1、Opencv3.4.16的下载 注意&#xff0c;我们使用的是Mac&#xff0c;所以ios pack并不能使用。 如何嫌官网上下载比较慢的话&#xff0c;可以考虑在csdn网站上下载&#xff0c;应该也是可以找到的。 2、cmake的下载 官网的链接&…